use leptos::prelude::*; use leptos_router::hooks::use_params_map; use pulldown_cmark::{Options, Parser, html}; use crate::api; use crate::i18n::*; #[component] pub fn ContentPage() -> impl IntoView { let params = use_params_map(); let slug = move || params.read().get("slug").unwrap_or_default(); let i18n = use_i18n(); let page = LocalResource::new(move || { let s = slug(); let lang = match i18n.get_locale() { Locale::en => "en", Locale::fr => "fr", }; async move { api::get_page(&s, lang).await } }); view! {
{t!(i18n, loading)}
}.into_any(), Some(Err(_)) => view! {"Page not found."
}.into_any(), Some(Ok(p)) => { let html = md_to_html(&p.content); view! { }.into_any() } }}