xvmcmm/src/components/layout/authenticated.rs

38 lines
1.0 KiB
Rust

use crate::Route;
use dioxus::prelude::*;
use crate::components::auth::Auth;
#[component]
pub fn Authenticated() -> Element {
let user = use_context::<crate::UserState>();
rsx! {
match &*user.read_unchecked() {
Some(Ok(_)) => rsx! {
div {
class: "navbar bg-base-200",
div {
class: "flex-1",
Link { class: "btn btn-ghost text-xl", to: Route::Home {}, "XVMCMM" },
}
div {
class: "flex-none",
ul {
class: "px-1 py-1",
li { Link { class: "btn btn-primary", to: Route::New {}, "Create" } },
}
}
}
Outlet::<Route> {}
},
Some(Err(_)) => rsx! {
Auth {},
},
None => rsx! {
div { "Loading..." }
}
}
}
}