summary refs log tree commit diff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/app.rs19
-rw-r--r--src/components/renderer/mod.rs18
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>