39 lines
925 B
Rust
39 lines
925 B
Rust
use iced::{
|
|
widget::{button, column, container, horizontal_rule, row, text, toggler, vertical_rule},
|
|
Element, Task,
|
|
};
|
|
|
|
use crate::models::{Filter, FilterConfig, FilterRule, FilterText, Settings};
|
|
|
|
use super::rule_list;
|
|
|
|
pub struct App {
|
|
pub settings: Settings,
|
|
pub filter_config: FilterConfig,
|
|
}
|
|
#[derive(Debug, Clone, Copy)]
|
|
pub enum Message {
|
|
RuleList(rule_list::Message),
|
|
}
|
|
|
|
pub fn view(state: &App) -> Element<Message> {
|
|
container(
|
|
row![
|
|
rule_list::view(&state.filter_config).map(Message::RuleList),
|
|
vertical_rule(2),
|
|
column![]
|
|
]
|
|
.spacing(8),
|
|
)
|
|
.padding(8)
|
|
.into()
|
|
}
|
|
|
|
pub fn update(state: &mut App, msg: Message) -> Task<Message> {
|
|
match msg {
|
|
Message::RuleList(msg) => {
|
|
rule_list::update(&mut state.filter_config, msg).map(Message::RuleList)
|
|
}
|
|
}
|
|
}
|