All checks were successful
Build and Push Image / build-and-push (push) Successful in 5m24s
58 lines
1.1 KiB
Rust
58 lines
1.1 KiB
Rust
use dioxus::prelude::*;
|
|
|
|
use crate::{Route, contexts::AuthContext, env::APP_VERSION};
|
|
|
|
const NAV_CSS: Asset = asset!("/assets/style/nav.scss");
|
|
const NAV_ICON: Asset = asset!("/assets/favicon.ico");
|
|
|
|
#[component]
|
|
pub fn Navbar() -> Element {
|
|
rsx! {
|
|
document::Link { rel: "stylesheet", href: NAV_CSS }
|
|
nav {
|
|
Branding {}
|
|
MainNaviagation {}
|
|
Widgets {}
|
|
Utils {}
|
|
}
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn MainNaviagation() -> Element {
|
|
rsx! {
|
|
div { class: "mainNav",
|
|
Link { class: "navItem", to: Route::Home {}, "Home" }
|
|
Link { class: "navItem", to: Route::Settings {}, "Settings" }
|
|
}
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn Branding() -> Element {
|
|
rsx! {
|
|
div { class: "branding",
|
|
img { src: NAV_ICON, alt: "Aoba" }
|
|
}
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn Widgets() -> Element {
|
|
rsx! {
|
|
div { class: "widgets" }
|
|
}
|
|
}
|
|
|
|
#[component]
|
|
pub fn Utils() -> Element {
|
|
let mut auth_context = use_context::<AuthContext>();
|
|
let version = APP_VERSION;
|
|
rsx! {
|
|
div { class: "utils",
|
|
div { "{version}" }
|
|
div { onclick: move |_| auth_context.logout(), "Logout" }
|
|
}
|
|
}
|
|
}
|