Add basic methods into NavigatedPage

This commit is contained in:
2026-08-13 22:03:47 +03:00
parent d8e7cbbc36
commit 4ca7aa7044
17 changed files with 590 additions and 324 deletions
+29 -27
View File
@@ -64,17 +64,7 @@ impl NavigatedPage<SelectorMessage> for SelectorState {
fn navigated(&mut self) {
}
}
impl SelectorState {
pub fn new(state: Arc<Mutex<AppState>>) -> Self {
Self {
set: Default::default(),
is_writing: false,
state,
}
}
pub fn update(&mut self, message: SelectorMessage) -> Task<RootMessage> {
fn update(&mut self, message: SelectorMessage) -> Task<RootMessage> {
match message {
SelectorMessage::Change => match self.set.chars_type {
KanaType::Katakana => self.set = KanaSet::hiragana(),
@@ -86,19 +76,7 @@ impl SelectorState {
}
Task::none()
}
fn nav_style(theme: &Theme, status: Status) -> Style {
let mut basic = button::text(theme, status);
basic.background = if status == Status::Hovered {
Some(Background::Color(Color::WHITE.scale_alpha(0.1)))
} else {
None
};
basic.border.radius = BUTTON_RADIUS.into();
basic
}
pub fn view(&self) -> Element<'_, SelectorMessage> {
fn view(&self) -> Element<'_, SelectorMessage> {
container(
iced::widget::column![
row![
@@ -127,11 +105,35 @@ impl SelectorState {
.on_press(SelectorMessage::Goto)
.style(cta_button),
]
.spacing(DEFAULT_SPACING),
.spacing(DEFAULT_SPACING),
)
.padding(10)
.into()
.padding(10)
.into()
}
}
impl SelectorState {
pub fn new(state: Arc<Mutex<AppState>>) -> Self {
Self {
set: Default::default(),
is_writing: false,
state,
}
}
fn nav_style(theme: &Theme, status: Status) -> Style {
let mut basic = button::text(theme, status);
basic.background = if status == Status::Hovered {
Some(Background::Color(Color::WHITE.scale_alpha(0.1)))
} else {
None
};
basic.border.radius = BUTTON_RADIUS.into();
basic
}
fn rows_selector(&self) -> Element<'_, SelectorMessage> {
let mut row = Row::new();