From b856f12cf422b96c37c12df3d7829e4d15ef4453 Mon Sep 17 00:00:00 2001
From: tempest
Date: Tue, 15 Apr 2025 00:08:12 -0600
Subject: Can find content data
---
src/components/app.rs | 66 +++++++++++++++++++++++++++++++++------------------
1 file changed, 43 insertions(+), 23 deletions(-)
(limited to 'src/components/app.rs')
diff --git a/src/components/app.rs b/src/components/app.rs
index a7ac5bd..dd2d018 100644
--- a/src/components/app.rs
+++ b/src/components/app.rs
@@ -1,16 +1,21 @@
+use std::collections::HashMap;
+
use leptos::prelude::*;
use leptos::Params;
+use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title};
use leptos_router::hooks::use_params;
-use leptos_router::hooks::use_query;
use leptos_router::params::Params;
-use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title};
use leptos_router::{
- components::{ParentRoute, Route, Router, Routes}, path
+ components::{ParentRoute, Route, Router, Routes},
+ path,
};
-use crate::components::layout::Layout;
-use super::renderer::WikiPage;
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;
pub fn shell(options: LeptosOptions) -> impl IntoView {
view! {
@@ -57,41 +62,56 @@ pub fn App() -> impl IntoView {
#[derive(Params, PartialEq)]
struct PageParams {
- path: Option
+ path: Option,
+}
+
+#[server]
+async fn get_namespace() -> Result {
+ use crate::data::StormscribeData;
+
+ Ok(StormscribeData::get_namespace())
+}
+
+#[server]
+async fn get_pages() -> Result, ServerFnError> {
+ use crate::data::StormscribeData;
+
+ Ok(StormscribeData::get_pages())
}
// Renders a page
#[component]
fn PageRender() -> impl IntoView {
- use crate::actions::page::get_page_content;
-
let params = use_params::();
- let page_path = params.read()
+ let page_path = params
+ .read()
.as_ref()
.ok()
- .map(|params| params.path.clone()
- .unwrap_or("Unknown path".to_string()))
+ .map(|params| params.path.clone().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)
- );
+ let namespace = Resource::new(move || {}, |_| get_namespace());
+ let page_resource = Resource::new(move || {}, |_| get_pages());
view! {
"Loading..."
}
>
{move || Suspend::new(async move {
- let data = page_data.await;
- match data {
- Ok(_) => view! {Loaded
}.into_any(),
- Err(_) => view! {Error
}.into_any(),
+ 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(),
}
})}
- }.into_any()
+ }
+ .into_any()
}
// Renders a page
@@ -99,11 +119,11 @@ fn PageRender() -> impl IntoView {
fn PageEdit() -> impl IntoView {
let params = use_params::();
- let page_path = params.read()
+ let page_path = params
+ .read()
.as_ref()
.ok()
- .map(|params| params.path.clone()
- .unwrap_or("Unknown path".to_string()))
+ .map(|params| params.path.clone().unwrap_or("Unknown path".to_string()))
.unwrap_or("Could not read params".to_string());
view! {
--
cgit 1.4.1