use yew::{function_component, html, Callback, Html}; use crate::app::components::loading_indicator::BusyIndicator; use crate::app::components::{AppIcon, IconButton, ToastrView, WebsocketStatus}; use crate::app::components::theme::Theme; use crate::hooks::use_service_context; use crate::provider::DialogProvider; use yew::use_state; use crate::app::components::api_user::playlist::ApiUserPlaylist; #[function_component] pub fn ApiUserView() -> Html { let services = use_service_context(); let theme = use_state(Theme::get_current_theme); let handle_theme_switch = { let set_theme = theme.clone(); Callback::from(move |_| { let new_theme = if *set_theme == Theme::Dark { Theme::Bright } else { Theme::Dark }; new_theme.switch_theme(); set_theme.set(new_theme); }) }; let handle_logout = { let services_ctx = services.clone(); Callback::from(move |_| services_ctx.auth.logout()) }; html! {
{ if let Some(ref title) = services.config.ui_config.app_title { html! { { title } } } else { html! { } } }
} }