Filter check on edit page

This commit is contained in:
micialware committed 2026-08-18 17:45:50 +03:00
1 parent d3c28179b6
commit 4187344a29
8 files changed
+27 -12

No files matched your search

+14 -2
View File
@@ -9,15 +9,17 @@ use iced::widget::button::danger;
use iced::widget::{button, column, row, scrollable, space, text, text_input};
use iced::{Element, Task};
use iced_core::Length::Fill;
use iced_core::Padding;
use iced_core::{color, Padding, Theme};
use std::sync::{Arc, Mutex};
use std::time::Duration;
use iced::widget::text_input::Catalog;
pub struct RepetitionSettingsState {
set: DeckSettings,
index: usize,
state: Arc<Mutex<AppState>>,
real_delete: bool,
correct_filter: bool,
}
impl RepetitionSettingsState {
@@ -27,11 +29,14 @@ impl RepetitionSettingsState {
let local_state = p1.lock().unwrap();
set = local_state.decks[index].clone();
}
let filter_state = set.check_filter();
RepetitionSettingsState {
index,
set,
state: p1,
real_delete: false,
correct_filter: filter_state,
}
}
}
@@ -65,6 +70,7 @@ impl NavigatedPage<RepetitionSettingsMessage> for RepetitionSettingsState {
}
SetFilter(new) => {
self.set.filter = new;
self.correct_filter = self.set.check_filter();
}
TryFilter => {
let state = self.state.lock().unwrap();
@@ -111,7 +117,13 @@ impl NavigatedPage<RepetitionSettingsMessage> for RepetitionSettingsState {
.spacing(QUARTER_SPACING),
column![
text!("Фильтр"),
text_input("", &self.set.filter).on_input(SetFilter),
text_input("", &self.set.filter).style(|x, status| {
let mut primary = Theme::default()(x, status);
if !self.correct_filter {
primary.border.color = color!(255, 255, 0);
}
primary
}).on_input(SetFilter),
button("Проверить фильтр")
.style(jl_button)
.on_press(TryFilter),