82 lines
2.6 KiB
Rust
82 lines
2.6 KiB
Rust
use crate::components::navigation_item::NavigationItem;
|
|
use crate::route::Route;
|
|
use dioxus::prelude::*;
|
|
|
|
#[component]
|
|
pub(crate) fn Navigation(expanded: Signal<bool>) -> Element {
|
|
rsx! {
|
|
div {
|
|
class: "grid grid-cols-5 justify-stretch",
|
|
button {
|
|
class: format!(
|
|
"py-4 text-center text-2xl {}",
|
|
if expanded() { "text-zinc-200" }
|
|
else { "text-zinc-500" }
|
|
),
|
|
onclick: move |_| expanded.set(!expanded()),
|
|
i {
|
|
class: "fa-solid fa-bars"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryNextStepsPage,
|
|
i {
|
|
class: "fa-solid fa-forward"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryCalendarPage,
|
|
i {
|
|
class: "fa-solid fa-calendar-days"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryTodayPage,
|
|
i {
|
|
class: "fa-solid fa-calendar-day"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryInboxPage,
|
|
i {
|
|
class: "fa-solid fa-inbox"
|
|
}
|
|
},
|
|
{if expanded() {
|
|
rsx! {
|
|
NavigationItem {
|
|
route: Route::ProjectsPage,
|
|
i {
|
|
class: "fa-solid fa-list"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryTrashPage,
|
|
i {
|
|
class: "fa-solid fa-trash-can"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryDonePage,
|
|
i {
|
|
class: "fa-solid fa-check"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryLongTermPage,
|
|
i {
|
|
class: "fa-solid fa-water"
|
|
}
|
|
},
|
|
NavigationItem {
|
|
route: Route::CategoryWaitingForPage,
|
|
i {
|
|
class: "fa-solid fa-hourglass-half"
|
|
}
|
|
}
|
|
}
|
|
} else { VNode::empty() }}
|
|
}
|
|
}
|
|
}
|