diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/app.rs | 19 | ||||
-rw-r--r-- | src/components/renderer/mod.rs | 18 |
2 files changed, 21 insertions, 16 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() } diff --git a/src/components/renderer/mod.rs b/src/components/renderer/mod.rs index 6bc029a..68aac9c 100644 --- a/src/components/renderer/mod.rs +++ b/src/components/renderer/mod.rs @@ -1,24 +1,12 @@ use leptos::prelude::*; use leptos::{component, view, IntoView}; - -// use crate::data::content::ContentController; +use crate::data::content::{Page,Namespace}; #[component] pub fn WikiPage( - url_path: String, + page_data: Page, + parent_namespaces: Vec<Namespace>, ) -> impl IntoView { - // let content_controller = use_context::<ContentController>().unwrap(); - - // let _snapshot = Resource::new( - // move || (url_path.clone(), content_controller.clone()), - // |url_path: String| { - // let page_path = url_path.clone(); - // - // async move { - // let content = content_controller.get_snapshot().await; - // let page = content.page_paths.get(&page_path); - // } - // }); view! { <h1>Article (Viewing)</h1> |