use crate::theming::*;
use dioxus_core::ScopeState;
use dioxus_hooks::{use_shared_state, use_shared_state_provider, UseSharedState};
pub fn use_init_theme(cx: &ScopeState, theme: Theme) {
use_shared_state_provider(cx, || theme);
}
pub fn use_init_default_theme(cx: &ScopeState) {
use_shared_state_provider(cx, Theme::default);
}
pub fn use_theme(cx: &ScopeState) -> &UseSharedState<Theme> {
use_shared_state::<Theme>(cx).unwrap()
}
pub fn use_get_theme(cx: &ScopeState) -> Theme {
use_shared_state::<Theme>(cx)
.map(|v| v.read().clone())
.unwrap_or_default()
}