thaw/demo/src/app.rs

124 lines
6 KiB
Rust
Raw Normal View History

2023-06-13 12:43:15 +08:00
use crate::pages::*;
2024-07-07 18:33:45 +08:00
use leptos::{prelude::*, reactive_graph::wrappers::write::SignalSetter};
2023-11-13 16:17:45 +08:00
use leptos_meta::provide_meta_context;
2024-07-07 18:33:45 +08:00
use leptos_router::{
2024-07-08 00:04:07 +08:00
components::{ParentRoute, Route, Router, Routes},
2024-07-07 18:33:45 +08:00
StaticSegment,
};
2024-07-07 18:33:45 +08:00
// use leptos_use::{
// storage::use_local_storage,
// utils::{FromToStringCodec, StringCodec},
// };
2023-11-05 16:03:58 +08:00
use thaw::*;
2023-06-13 12:43:15 +08:00
#[component]
2023-08-29 09:11:22 +08:00
pub fn App() -> impl IntoView {
2024-07-07 18:33:45 +08:00
let is_routing = RwSignal::new(false);
2023-11-19 14:06:23 +08:00
let set_is_routing = SignalSetter::map(move |is_routing_data| {
is_routing.set(is_routing_data);
2023-11-01 14:04:12 +08:00
});
2023-11-13 16:17:45 +08:00
provide_meta_context();
2023-11-19 14:06:23 +08:00
2023-08-29 09:11:22 +08:00
view! {
2024-07-08 00:04:07 +08:00
<Router set_is_routing>
2023-11-19 14:06:23 +08:00
<TheProvider>
<TheRouter is_routing/>
</TheProvider>
</Router>
2023-06-13 12:43:15 +08:00
}
}
2023-10-24 21:49:36 +08:00
2023-11-06 23:35:30 +08:00
#[component]
2023-11-19 14:06:23 +08:00
fn TheRouter(is_routing: RwSignal<bool>) -> impl IntoView {
2024-07-08 00:04:07 +08:00
let loading_bar = use_loading_bar();
_ = is_routing.watch(move |is_routing| {
if *is_routing {
loading_bar.start();
} else {
loading_bar.finish();
}
});
2023-11-19 14:06:23 +08:00
2023-11-06 23:35:30 +08:00
view! {
2024-07-07 18:33:45 +08:00
<Routes fallback=|| "404">
<Route path=StaticSegment("") view=Home/>
2024-07-08 00:04:07 +08:00
<ParentRoute path=StaticSegment("guide") view=ComponentsPage>
<Route path=StaticSegment("installation") view=InstallationMdPage/>
<Route path=StaticSegment("usage") view=UsageMdPage/>
<Route path=StaticSegment("server-sider-rendering") view=ServerSiderRenderingMdPage/>
<Route path=(StaticSegment("development"), StaticSegment("guide")) view=DevelopmentGuideMdPage/>
<Route path=(StaticSegment("development"), StaticSegment("components")) view=DevelopmentComponentsMdPage/>
</ParentRoute>
<ParentRoute path=StaticSegment("components") view=ComponentsPage>
2024-07-07 18:33:45 +08:00
// // <Route path="/tabbar" view=TabbarPage/>
// // <Route path="/nav-bar" view=NavBarPage/>
// // <Route path="/toast" view=ToastPage/>
2024-07-08 00:04:07 +08:00
// <Route path=StaticSegment("accordion") view=AccordionMdPage/>
// <Route path=StaticSegment("anchor") view=AnchorMdPage/>
// <Route path=StaticSegment("auto-complete") view=AutoCompleteMdPage/>
// <Route path=StaticSegment("avatar") view=AvatarMdPage/>
// <Route path=StaticSegment("back-top") view=BackTopMdPage/>
// <Route path=StaticSegment("badge") view=BadgeMdPage/>
// <Route path=StaticSegment("breadcrumb") view=BreadcrumbMdPage/>
<Route path=StaticSegment("button") view=ButtonMdPage/>
<Route path=StaticSegment("calendar") view=CalendarMdPage/>
<Route path=StaticSegment("card") view=CardMdPage/>
<Route path=StaticSegment("checkbox") view=CheckboxMdPage/>
<Route path=StaticSegment("color-picker") view=ColorPickerMdPage/>
<Route path=StaticSegment("combobox") view=ComboboxMdPage/>
<Route path=StaticSegment("config-provider") view=ConfigProviderMdPage/>
<Route path=StaticSegment("date-picker") view=DatePickerMdPage/>
<Route path=StaticSegment("dialog") view=DialogMdPage/>
<Route path=StaticSegment("divider") view=DividerMdPage/>
<Route path=StaticSegment("drawer") view=DrawerMdPage/>
<Route path=StaticSegment("grid") view=GridMdPage/>
// <Route path=StaticSegment("icon") view=IconMdPage/>
// <Route path=StaticSegment("image") view=ImageMdPage/>
// <Route path=StaticSegment("input") view=InputMdPage/>
// <Route path=StaticSegment("layout") view=LayoutMdPage/>
// <Route path=StaticSegment("loading-bar") view=LoadingBarMdPage/>
// <Route path="/message" view=MessageMdPage/>
// <Route path=StaticSegment("message-bar") view=MessageBarMdPage/>
// <Route path=StaticSegment("popover") view=PopoverMdPage/>
// <Route path=StaticSegment("progress-bar") view=ProgressBarMdPage/>
// <Route path=StaticSegment("radio") view=RadioMdPage/>
// <Route path=StaticSegment("scrollbar") view=ScrollbarMdPage/>
// // <Route path="/select" view=SelectMdPage/>
// <Route path=StaticSegment("skeleton") view=SkeletonMdPage/>
// <Route path=StaticSegment("slider") view=SliderMdPage/>
// <Route path=StaticSegment("space") view=SpaceMdPage/>
// <Route path=StaticSegment("spin-button") view=SpinButtonMdPage/>
// <Route path=StaticSegment("spinner") view=SpinnerMdPage/>
// <Route path=StaticSegment("switch") view=SwitchMdPage/>
// <Route path=StaticSegment("tab-list") view=TabListMdPage/>
// <Route path=StaticSegment("table") view=TableMdPage/>
// <Route path=StaticSegment("tag") view=TagMdPage/>
// <Route path=StaticSegment("text") view=TextMdPage/>
// <Route path=StaticSegment("textarea") view=TextareaMdPage/>
// <Route path=StaticSegment("time-picker") view=TimePickerMdPage/>
// <Route path=StaticSegment("toast") view=ToastMdPage />
// <Route path=StaticSegment("upload") view=UploadMdPage/>
</ParentRoute>
2024-06-26 22:32:13 +08:00
// <Route path="/mobile/tabbar" view=TabbarDemoPage/>
// <Route path="/mobile/nav-bar" view=NavBarDemoPage/>
// <Route path="/mobile/toast" view=ToastDemoPage/>
2023-11-19 14:06:23 +08:00
</Routes>
2023-11-06 23:35:30 +08:00
}
}
2023-10-24 21:49:36 +08:00
#[component]
2023-11-19 14:06:23 +08:00
fn TheProvider(children: Children) -> impl IntoView {
2024-07-07 18:33:45 +08:00
// let (read_theme, _, _) = use_local_storage::<String, FromToStringCodec>("theme");
// let theme = RwSignal::new(Theme::from(read_theme.get_untracked()));
2023-11-19 14:06:23 +08:00
2023-10-24 21:49:36 +08:00
view! {
2024-07-07 18:33:45 +08:00
<ConfigProvider>
2024-07-07 22:28:11 +08:00
// <ToasterProvider>
2024-07-08 00:04:07 +08:00
<LoadingBarProvider>
2024-07-07 22:28:11 +08:00
{children()}
2024-07-08 00:04:07 +08:00
</LoadingBarProvider>
2024-07-07 22:28:11 +08:00
// </ToasterProvider>
2024-05-01 20:26:17 +08:00
</ConfigProvider>
2023-10-24 21:49:36 +08:00
}
}