diff --git a/Cargo.lock b/Cargo.lock
index 8c0fc0c..aeb60a2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -702,6 +702,7 @@ name = "leptos_toaster"
version = "0.1.0"
dependencies = [
"cfg-if",
+ "js-sys",
"leptos",
"wasm-bindgen",
"web-sys",
diff --git a/Cargo.toml b/Cargo.toml
index b3a6a96..ea18eb3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,6 +11,7 @@ keywords = ["leptos", "toaster", "toast"]
[dependencies]
cfg-if = "1.0.0"
+js-sys = "0.3.67"
leptos = { version = "0.6", features = ["nightly"] }
wasm-bindgen = "0.2.90"
web-sys = { version = "0.3.67", features = ["EventTarget", "HtmlElement", "DomRect", "Element"] }
diff --git a/examples/basic/Cargo.lock b/examples/basic/Cargo.lock
index 070b135..7533d6b 100644
--- a/examples/basic/Cargo.lock
+++ b/examples/basic/Cargo.lock
@@ -714,6 +714,7 @@ name = "leptos_toaster"
version = "0.1.0"
dependencies = [
"cfg-if",
+ "js-sys",
"leptos",
"wasm-bindgen",
"web-sys",
diff --git a/examples/basic/Trunk.toml b/examples/basic/Trunk.toml
new file mode 100644
index 0000000..132512a
--- /dev/null
+++ b/examples/basic/Trunk.toml
@@ -0,0 +1,5 @@
+[serve]
+port = 8080
+
+[watch]
+watch = ["../../src", "./src"]
diff --git a/examples/basic/src/main.rs b/examples/basic/src/main.rs
index c2d8893..03b2dcd 100644
--- a/examples/basic/src/main.rs
+++ b/examples/basic/src/main.rs
@@ -1,5 +1,7 @@
use leptos::*;
-use leptos_toaster::{Toast, ToastId, ToastVariant, Toaster, ToasterPosition, Toasts};
+use leptos_toaster::{
+ Toast, ToastId, ToastOptions, ToastVariant, Toaster, ToasterPosition, Toasts,
+};
fn main() {
mount_to_body(|| view! { })
@@ -8,9 +10,7 @@ fn main() {
#[component]
fn App() -> impl IntoView {
view! {
-
+
"Basic example"
diff --git a/src/toast_container.rs b/src/toast_container.rs
index 05df409..48140c3 100644
--- a/src/toast_container.rs
+++ b/src/toast_container.rs
@@ -2,8 +2,12 @@ use crate::{
types::{decode_message, HeightT, Toast},
ToastId, ToasterPosition,
};
+use js_sys::Date;
use leptos::{leptos_dom::helpers::TimeoutHandle, *};
+use std::cmp::{max, min};
use std::time::Duration;
+use wasm_bindgen::JsCast;
+use web_sys::{HtmlElement, PointerEvent};
#[component]
pub fn ToastContainer(
@@ -71,7 +75,7 @@ pub fn ToastContainer(
let delete_timeout_handle = RwSignal::