Calendar (WIP)
This commit is contained in:
parent
9d3f9e9c60
commit
79a0aeb1b8
24 changed files with 613 additions and 231 deletions
|
|
@ -6,17 +6,13 @@ use crate::{
|
|||
utils::{by_id, selector_and_clone, SelectorExt},
|
||||
};
|
||||
|
||||
pub enum DialogContent<'a, T>
|
||||
where
|
||||
T: Fn(&Element),
|
||||
{
|
||||
Text(&'a str),
|
||||
CloneFromElement(&'a str, T),
|
||||
pub async fn show(element_selector: &str) -> bool {
|
||||
show_and_initialize(element_selector, async |_| {}).await
|
||||
}
|
||||
|
||||
pub async fn show<T>(content: DialogContent<'_, T>) -> bool
|
||||
pub async fn show_and_initialize<T>(element_selector: &str, initializer: T) -> bool
|
||||
where
|
||||
T: Fn(&Element),
|
||||
T: AsyncFn(Element),
|
||||
{
|
||||
let dialog: HtmlDialogElement = by_id("modal-dialog");
|
||||
|
||||
|
|
@ -25,15 +21,10 @@ where
|
|||
|
||||
let content_element = dialog.selector::<Element>(".content");
|
||||
|
||||
match content {
|
||||
DialogContent::Text(message) => content_element.set_inner_html(message),
|
||||
DialogContent::CloneFromElement(element_selector, initilizer) => {
|
||||
let element: Element = selector_and_clone(element_selector);
|
||||
content_element.set_inner_html("");
|
||||
content_element.append_child(&element).unwrap();
|
||||
initilizer(&element);
|
||||
}
|
||||
}
|
||||
let element: Element = selector_and_clone(element_selector);
|
||||
content_element.set_inner_html("");
|
||||
content_element.append_child(&element).unwrap();
|
||||
initializer(element).await;
|
||||
|
||||
dialog.show_modal().unwrap();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue