at main 41 lines 1.2 kB view raw
1//! Editor view - wraps the MarkdownEditor component for the /editor route. 2 3use crate::components::editor::MarkdownEditor; 4use dioxus::prelude::*; 5 6/// Editor page view. 7/// 8/// Displays the markdown editor at the /editor route. 9/// Optionally loads an existing entry for editing via `?entry={at-uri}`. 10#[component] 11pub fn Editor(entry: Option<String>) -> Element { 12 rsx! { 13 EditorCss {} 14 div { class: "editor-page", 15 MarkdownEditor { entry_uri: entry, target_notebook: None } 16 } 17 } 18} 19 20#[component] 21pub fn EditorCss() -> Element { 22 use weaver_renderer::css::{generate_base_css, generate_syntax_css}; 23 use weaver_renderer::theme::default_resolved_theme; 24 25 let css_content = use_resource(move || async move { 26 let resolved_theme = default_resolved_theme(); 27 let mut css = generate_base_css(&resolved_theme); 28 css.push_str( 29 &generate_syntax_css(&resolved_theme) 30 .await 31 .unwrap_or_default(), 32 ); 33 34 Some(css) 35 }); 36 37 match css_content() { 38 Some(Some(css)) => rsx! { document::Style { {css} } }, 39 _ => rsx! {}, 40 } 41}