From 75f9b9dca38e9ec9d1a552f61915a782a0d15fab Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Thu, 23 Mar 2023 21:11:42 +0100 Subject: [PATCH] menu: 2 kind of menus: user and admin --- crates/ezidam/src/menu.rs | 39 ++++++++++++++++-------- crates/ezidam/src/menu/icons.rs | 3 ++ crates/ezidam/src/menu/items.rs | 35 +++------------------- crates/ezidam/src/menu/items/admin.rs | 43 +++++++++++++++++++++++++++ crates/ezidam/src/menu/items/user.rs | 38 +++++++++++++++++++++++ crates/ezidam/src/menu/template.rs | 17 +++++++++-- crates/ezidam/src/page.rs | 7 +++-- crates/ezidam/src/page/template.rs | 7 +---- 8 files changed, 135 insertions(+), 54 deletions(-) create mode 100644 crates/ezidam/src/menu/icons.rs create mode 100644 crates/ezidam/src/menu/items/admin.rs create mode 100644 crates/ezidam/src/menu/items/user.rs diff --git a/crates/ezidam/src/menu.rs b/crates/ezidam/src/menu.rs index 51a6c77..14ba2c1 100644 --- a/crates/ezidam/src/menu.rs +++ b/crates/ezidam/src/menu.rs @@ -1,24 +1,39 @@ +mod icons; mod items; mod template; -pub use items::Item; +pub use items::{Admin, User}; pub use template::Template; -pub struct Menu { - pub selected: Item, - pub list: Vec, +pub enum Menu { + User(User), + Admin(Admin), } -impl From for Menu { - fn from(value: Item) -> Self { - Self { - selected: value, - list: list(), +impl Menu { + pub fn selected(&self) -> &'static str { + match self { + Menu::User(user) => user.id(), + Menu::Admin(admin) => admin.id(), + } + } + + pub fn list(&self) -> Vec