diff options
Diffstat (limited to 'src/components/app.rs')
-rw-r--r-- | src/components/app.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/components/app.rs b/src/components/app.rs index 5033359..a7ac5bd 100644 --- a/src/components/app.rs +++ b/src/components/app.rs @@ -63,6 +63,8 @@ struct PageParams { // Renders a page #[component] fn PageRender() -> impl IntoView { + use crate::actions::page::get_page_content; + let params = use_params::<PageParams>(); let page_path = params.read() @@ -72,8 +74,23 @@ fn PageRender() -> impl IntoView { .unwrap_or("Unknown path".to_string())) .unwrap_or("Could not read params".to_string()); + let page_data = Resource::new( + move || page_path.clone(), + |page_path| get_page_content(page_path) + ); + view! { - <WikiPage url_path=page_path /> + <Suspense + fallback=move || view! { <p>"Loading..."</p> } + > + {move || Suspend::new(async move { + let data = page_data.await; + match data { + Ok(_) => view! {<p>Loaded</p>}.into_any(), + Err(_) => view! {<p>Error</p>}.into_any(), + } + })} + </Suspense> }.into_any() } |