2023-03-30 09:40:22 +08:00
|
|
|
use leptos::*;
|
|
|
|
use melt_ui::*;
|
2023-04-12 12:47:31 +08:00
|
|
|
mod demo_button;
|
2023-04-14 17:28:32 +08:00
|
|
|
mod demo_checkbox;
|
2023-04-10 14:03:55 +08:00
|
|
|
mod demo_modal;
|
2023-04-18 17:27:39 +08:00
|
|
|
mod demo_slider;
|
|
|
|
|
2023-04-12 12:47:31 +08:00
|
|
|
pub use demo_button::*;
|
2023-04-14 17:28:32 +08:00
|
|
|
pub use demo_checkbox::*;
|
2023-04-10 14:03:55 +08:00
|
|
|
pub use demo_modal::*;
|
2023-04-18 17:27:39 +08:00
|
|
|
pub use demo_slider::*;
|
2023-03-30 09:40:22 +08:00
|
|
|
|
|
|
|
#[component]
|
|
|
|
pub fn App(cx: Scope) -> impl IntoView {
|
2023-04-04 15:55:14 +08:00
|
|
|
let (theme, set_theme) = create_signal(cx, Theme::light());
|
|
|
|
provide_context(cx, theme);
|
2023-03-30 22:54:46 +08:00
|
|
|
let (count, set_count) = create_signal(cx, 0.0);
|
2023-03-31 13:02:44 +08:00
|
|
|
let (button_type, set_button_type) = create_signal(cx, ButtonType::TEXT);
|
2023-04-12 12:47:31 +08:00
|
|
|
|
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-06 16:21:42 +08:00
|
|
|
<Input value=count_string on_input=on_input/>
|
2023-04-10 14:17:05 +08:00
|
|
|
<Button
|
|
|
|
on:click=move |_| set_theme.update(move |value| *value = Theme::dark())
|
|
|
|
type_=button_type
|
|
|
|
>
|
|
|
|
"theme"
|
|
|
|
</Button>
|
|
|
|
<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()}
|
2023-04-12 12:47:31 +08:00
|
|
|
|
2023-03-30 22:54:46 +08:00
|
|
|
<Progress percentage=count/>
|
2023-04-03 15:21:23 +08:00
|
|
|
</Space>
|
2023-04-12 12:47:31 +08:00
|
|
|
<hr />
|
|
|
|
<DemoButton />
|
|
|
|
<hr />
|
|
|
|
<DemoModal/>
|
2023-04-14 17:28:32 +08:00
|
|
|
<hr />
|
|
|
|
<DemoCheckout />
|
2023-04-18 17:27:39 +08:00
|
|
|
<hr />
|
|
|
|
<DemoSlider />
|
2023-03-30 09:40:22 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-12 12:47:31 +08:00
|
|
|
fn main() {
|
|
|
|
mount_to_body(|cx| view! { cx, <App/> })
|
|
|
|
}
|