From 619373a261ad18c51cd09bc61d116f585c8295ec Mon Sep 17 00:00:00 2001
From: tempest
Date: Fri, 18 Apr 2025 00:58:28 -0600
Subject: Read correct page
---
src/components/app.rs | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
(limited to 'src/components/app.rs')
diff --git a/src/components/app.rs b/src/components/app.rs
index dd2d018..2814562 100644
--- a/src/components/app.rs
+++ b/src/components/app.rs
@@ -13,9 +13,7 @@ use leptos_router::{
use super::editor::WikiEditor;
use super::renderer::WikiPage;
use crate::components::layout::Layout;
-use crate::data::Namespace;
-use crate::data::Page;
-use crate::data::PageUuid;
+use crate::data::{Namespace, Page, PageData, PageUuid};
pub fn shell(options: LeptosOptions) -> impl IntoView {
view! {
@@ -69,14 +67,21 @@ struct PageParams {
async fn get_namespace() -> Result {
use crate::data::StormscribeData;
- Ok(StormscribeData::get_namespace())
+ Ok(StormscribeData::get_namespace().await)
}
#[server]
async fn get_pages() -> Result, ServerFnError> {
use crate::data::StormscribeData;
- Ok(StormscribeData::get_pages())
+ Ok(StormscribeData::get_all_pages().await)
+}
+
+#[server]
+async fn lookup_page(path: String) -> Result {
+ use crate::data::StormscribeData;
+
+ Ok(StormscribeData::get_page_data(path).await)
}
// Renders a page
@@ -91,24 +96,20 @@ fn PageRender() -> impl IntoView {
.map(|params| params.path.clone().unwrap_or("Unknown path".to_string()))
.unwrap_or("Could not read params".to_string());
- let namespace = Resource::new(move || {}, |_| get_namespace());
- let page_resource = Resource::new(move || {}, |_| get_pages());
+ let page_resource = Resource::new(
+ move || page_path.clone(),
+ |page_path| async move { lookup_page(page_path).await },
+ );
view! {
"Loading..."
}
>
- {move || Suspend::new(async move {
- let name_data = namespace.await;
- let page_data = page_resource.await;
- match (name_data, page_data) {
- (Ok(names), Ok(pages)) => view! {
- {format!("{names:#?}")}
- {format!("{pages:#?}")}
- }.into_any(),
- _ => view! {Error
}.into_any(),
- }
- })}
+ {move || page_resource.get()
+ .map(|page| view! {
+ {format!("{page:#?}")}
+ })
+ }
}
.into_any()
--
cgit 1.4.1