summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2025-08-25 18:22:00 +0100
committerJoe Carstairs <me@joeac.net>2025-08-25 18:22:00 +0100
commit86487b8ff6e691f2b261a93733df8f4cc5dc7320 (patch)
tree8d116acb31fe3bf8ce5d4201ae0bbc36ce6cc38a /schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs
parentfe85652e4d3e8906824baddaafd05d19105579b8 (diff)
refactor navigation
Diffstat (limited to 'schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs')
-rw-r--r--schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs b/schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs
index 3132bf1..d65328c 100644
--- a/schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs
+++ b/schist_desktop_gui/src/gui/components/navigation/view_navigation_button.rs
@@ -4,24 +4,24 @@ use crate::gui::components::{active_button, inactive_button};
use super::{Message, Navigation};
-pub fn view_navigation_button<'a, TOption>(
- navigation: &'a Navigation<TOption>,
- option: &'a TOption,
-) -> Element<'a, Message<TOption>>
+impl<'a, TOption> Navigation<TOption>
where
- TOption: Clone + PartialEq + Into<Element<'a, Message<TOption>>>,
+ TOption: Clone + PartialEq + 'a,
+ Element<'a, Message<TOption>>: From<&'a TOption>,
{
- if navigation
- .active_option
- .as_ref()
- .is_some_and(|o| *o == *option)
- {
- active_button(Into::<Element<'a, Message<TOption>>>::into(option.clone())).into()
- } else {
- inactive_button(
- Into::<Element<'a, Message<TOption>>>::into(option.clone()),
- Message::SelectOption(option.clone()),
- )
+ pub(super) fn view_navigation_button(
+ &'a self,
+ option: &'a TOption,
+ ) -> Element<'a, Message<TOption>> {
+ if self
+ .active_option
+ .as_ref()
+ .is_some_and(|o| TOption::eq(o, option))
+ {
+ active_button(option)
+ } else {
+ inactive_button(option, Message::SelectOption(option.clone()))
+ }
.into()
}
}