10 unstable releases (4 breaking)
new 0.5.0 | Dec 11, 2024 |
---|---|
0.4.0 | Sep 9, 2024 |
0.3.0 | Dec 12, 2023 |
0.2.0 | Mar 7, 2023 |
0.1.3 | Mar 10, 2022 |
#579 in GUI
39KB
246 lines
Dioxus Toast
use dioxus::prelude::*;
use dioxus_toast::{ToastInfo, ToastManager};
fn main() {
launch(app)
}
fn app() -> Element {
std::panic::set_hook(Box::new(|info| {
println!("Panic: {}", info);
}));
let mut toast = use_signal(|| ToastManager::default());
rsx! {
dioxus_toast::ToastFrame {
manager: toast
}
div {
button {
onclick: move |_| {
let _id = toast.write().popup(ToastInfo::simple("hello world"));
println!("New Toast ID: {}", _id);
},
"Normal Toast"
}
button {
onclick: move |_| {
let _id = toast.write().popup(ToastInfo::success("Hello World!", "Success"));
println!("New Toast ID: {}", _id);
},
"Success Toast"
}
button {
onclick: move |_| {
let _id = toast.write().popup(ToastInfo {
heading: Some("top-right".into()),
context: "Top Right Toast".into(),
allow_toast_close: true,
position: dioxus_toast::Position::TopRight,
icon: None,
hide_after: None
});
},
"Top Right"
}
}
}
}
Use Toast for different component.
use dioxus::prelude::*;
fn main() {
launch(app)
}
fn app() -> Element {
let toast = use_context_provider(|| Signal::new(ToastManager::default()));
rsx! {
ToastFrame { manager: toast }
div {
hello {}
}
}
}
#[component]
fn hello() -> Element {
// use_context can help you pass toast-manager to different components
let mut toast: Signal<ToastManager> = use_context();
rsx! {
button {
onclick: move |_| {
let _ = toast.write().popup(ToastInfo::simple("hello world"));
}
"Click here!"
}
}
}
Dependencies
~4–48MB
~711K SLoC