use crate::class::Class;
use dioxus::prelude::*;
use markdown::{to_html_with_options, Options};
use zino_core::SharedString;
pub fn Markdown(props: MarkdownProps) -> Element {
let text = props.content.as_ref();
let html = to_html_with_options(text, &Options::gfm()).unwrap_or_else(|_| text.to_owned());
rsx! {
div {
class: props.class,
dangerous_inner_html: html,
}
}
}
#[derive(Clone, PartialEq, Props)]
pub struct MarkdownProps {
#[props(into, default = "content markdown".into())]
pub class: Class,
#[props(into)]
pub content: SharedString,
}