use std::time::Duration;
use leptos::*;
#[derive(Copy, Clone)]
pub struct TooltipContext {
pub trigger_ref: NodeRef<html::Button>,
pub open: RwSignal<bool>,
pub hide_delay: Duration,
}
impl Default for TooltipContext {
fn default() -> Self {
Self {
trigger_ref: NodeRef::default(),
open: create_rw_signal(false),
hide_delay: Duration::from_millis(200),
}
}
}
impl TooltipContext {
pub fn open(&self) {
self.open.set(true);
}
pub fn close(&self) {
self.open.set(false);
}
pub fn toggle(&self) {
if self.open.get() {
self.close();
} else {
self.open();
}
}
}