use leptos::prelude::*; use wasm_bindgen_futures::spawn_local; use crate::api::{self, Me}; use crate::components::toast::{provide_toast, ToastView}; use crate::router::Location; use crate::views::browser::Browser; use crate::views::shares::SharesPanel; #[component] pub fn ShellView( me: ReadSignal>, set_me: WriteSignal>, set_phase: WriteSignal, loc: ReadSignal, ) -> impl IntoView { let toast = provide_toast(); let (show_shares, set_show_shares) = signal(false); let on_logout = move |_| { spawn_local(async move { let _ = api::logout().await; set_me.set(None); set_phase.set(crate::app::AuthPhase::Login); }); }; view! {
"📂 filebrowser-ng"
{move || { let Some(m) = me.get() else { return None; }; let u = m.user?; let is_admin = u.is_admin; Some( view! { {u.name} "admin" } .into_view() .into_any(), ) }}
{move || if show_shares.get() { view! { } .into_view() .into_any() } else { view! {}.into_any() }}
} }