Recipe can now be scheduled
This commit is contained in:
parent
ae6da1a5ae
commit
fbef990022
18 changed files with 233 additions and 51 deletions
|
|
@ -1,4 +1,7 @@
|
|||
use gloo::{timers::callback::Timeout, utils::document};
|
||||
use web_sys::Element;
|
||||
|
||||
use crate::utils::{by_id, selector_and_clone, SelectorExt};
|
||||
|
||||
pub enum Level {
|
||||
Success,
|
||||
|
|
@ -7,12 +10,36 @@ pub enum Level {
|
|||
Warning,
|
||||
}
|
||||
|
||||
pub fn show(level: Level, message: &str) {
|
||||
const TIME_DISPLAYED: u32 = 10_000; // [ms].
|
||||
|
||||
pub fn show_message(level: Level, message: &str) {
|
||||
let toast_element = document().get_element_by_id("toast").unwrap();
|
||||
toast_element.set_inner_html(message);
|
||||
toast_element.set_class_name("show");
|
||||
|
||||
Timeout::new(4_000, move || {
|
||||
Timeout::new(TIME_DISPLAYED, move || {
|
||||
toast_element.set_class_name("");
|
||||
})
|
||||
.forget();
|
||||
}
|
||||
|
||||
pub fn show_element(level: Level, selector: &str) {
|
||||
show_element_and_initialize(level, selector, |_| {})
|
||||
}
|
||||
|
||||
pub fn show_element_and_initialize<T>(level: Level, selector: &str, initializer: T)
|
||||
where
|
||||
T: Fn(Element),
|
||||
{
|
||||
let toast_element = document().get_element_by_id("toast").unwrap();
|
||||
|
||||
let element: Element = selector_and_clone(selector);
|
||||
toast_element.set_inner_html("");
|
||||
toast_element.append_child(&element).unwrap();
|
||||
initializer(element.clone());
|
||||
toast_element.set_class_name("show");
|
||||
|
||||
Timeout::new(TIME_DISPLAYED, move || {
|
||||
toast_element.set_class_name("");
|
||||
})
|
||||
.forget();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue