From 2dacece4eedc8af2ccde3be6918371293350cc4e Mon Sep 17 00:00:00 2001 From: Ashelyn Rose Date: Sat, 26 Apr 2025 21:06:00 -0600 Subject: Convert to rocket and morgana --- src/components/app.rs | 133 -------------------------------------------------- 1 file changed, 133 deletions(-) delete mode 100644 src/components/app.rs (limited to 'src/components/app.rs') diff --git a/src/components/app.rs b/src/components/app.rs deleted file mode 100644 index 2814562..0000000 --- a/src/components/app.rs +++ /dev/null @@ -1,133 +0,0 @@ -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::params::Params; -use leptos_router::{ - components::{ParentRoute, Route, Router, Routes}, - path, -}; - -use super::editor::WikiEditor; -use super::renderer::WikiPage; -use crate::components::layout::Layout; -use crate::data::{Namespace, Page, PageData, PageUuid}; - -pub fn shell(options: LeptosOptions) -> impl IntoView { - view! { - - - - - - - - - - - - - - } -} - -#[component] -pub fn App() -> impl IntoView { - // Provides context that manages stylesheets, titles, meta tags, etc. - provide_meta_context(); - - view! { - // injects a stylesheet into the document - // id=leptos means cargo-leptos will hot-reload this stylesheet - - - // sets the document title - - - // content for this welcome page - <Router> - <Routes fallback=|| "Page not found.".into_view()> - <ParentRoute path=path!("/") view=Layout> - <Route path=path!("/~/*path") view=PageRender/> - <Route path=path!("/edit/*path") view=PageEdit/> - </ParentRoute> - </Routes> - </Router> - } -} - -#[derive(Params, PartialEq)] -struct PageParams { - path: Option<String>, -} - -#[server] -async fn get_namespace() -> Result<Namespace, ServerFnError> { - use crate::data::StormscribeData; - - Ok(StormscribeData::get_namespace().await) -} - -#[server] -async fn get_pages() -> Result<HashMap<PageUuid, Page>, ServerFnError> { - use crate::data::StormscribeData; - - Ok(StormscribeData::get_all_pages().await) -} - -#[server] -async fn lookup_page(path: String) -> Result<PageData, ServerFnError> { - use crate::data::StormscribeData; - - Ok(StormscribeData::get_page_data(path).await) -} - -// Renders a page -#[component] -fn PageRender() -> impl IntoView { - let params = use_params::<PageParams>(); - - let page_path = params - .read() - .as_ref() - .ok() - .map(|params| params.path.clone().unwrap_or("Unknown path".to_string())) - .unwrap_or("Could not read params".to_string()); - - let page_resource = Resource::new( - move || page_path.clone(), - |page_path| async move { lookup_page(page_path).await }, - ); - - view! { - <Suspense - fallback=move || view! { <p>"Loading..."</p> } - > - {move || page_resource.get() - .map(|page| view! { - <pre>{format!("{page:#?}")}</pre> - }) - } - </Suspense> - } - .into_any() -} - -// Renders a page -#[component] -fn PageEdit() -> impl IntoView { - let params = use_params::<PageParams>(); - - let page_path = params - .read() - .as_ref() - .ok() - .map(|params| params.path.clone().unwrap_or("Unknown path".to_string())) - .unwrap_or("Could not read params".to_string()); - - view! { - <WikiEditor url_path=page_path /> - } -} -- cgit 1.4.1