use crate::View;
use waterui_core::dynamic::{Dynamic, DynamicHandler};
use waterui_core::plugin::Plugin;
#[derive(Clone)]
pub struct FullScreenOverlayManager {
handler: DynamicHandler,
}
impl Plugin for FullScreenOverlayManager {}
impl FullScreenOverlayManager {
pub fn new() -> (Self, impl View + Clone) {
let (handler, dynamic) = Dynamic::new();
handler.set(()); (Self { handler }, dynamic)
}
pub fn show(&self, view: impl View) {
self.handler.set(view);
}
pub fn hide(&self) {
self.handler.set(());
}
}
impl core::fmt::Debug for FullScreenOverlayManager {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.debug_struct("FullScreenOverlayManager").finish()
}
}