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') 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