thaw/examples/basic/src/main.rs

35 lines
1.2 KiB
Rust
Raw Normal View History

2023-03-30 09:40:22 +08:00
use leptos::*;
use melt_ui::*;
fn main() {
mount_to_body(|cx| view! { cx, <App /> })
}
#[component]
pub fn App(cx: Scope) -> impl IntoView {
2023-03-30 22:54:46 +08:00
let (count, set_count) = create_signal(cx, 0.0);
2023-03-30 09:40:22 +08:00
let (open, set_open) = create_signal(cx, true);
2023-03-31 13:02:44 +08:00
let (button_type, set_button_type) = create_signal(cx, ButtonType::TEXT);
2023-04-03 17:31:50 +08:00
let count_string = create_memo(cx, move |_| {
log!("sd");
count.get().to_string()
});
let on_input = SignalSetter::map(cx, move |value: String| {
set_count.set(value.parse().unwrap());
});
2023-03-30 09:40:22 +08:00
view! { cx,
2023-04-03 15:21:23 +08:00
<Space>
2023-04-03 17:31:50 +08:00
<Input value=count_string.get() on_input=on_input/>
2023-03-31 13:02:44 +08:00
<Button on:click=move |_| set_button_type.update(move |value| *value = ButtonType::PRIMARY)>"click"</Button>
<Button on:click=move |_| set_count.update(move |value| *value += 1.0) type_=button_type>"click"</Button>
2023-03-30 09:40:22 +08:00
{move || count.get()}
<Modal title=Some("".to_string()) open=open on_cancel=Some(Box::new(move || { set_open.set(false) }))>
"sd" {move || count.get()}
</Modal>
2023-03-30 22:54:46 +08:00
<Progress percentage=count/>
2023-04-03 15:21:23 +08:00
</Space>
2023-03-30 09:40:22 +08:00
}
}