1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use leptos::*;
use leptos_meta::*;
use regex::Regex;
use stylist::Result;
pub type Children = Box<dyn FnOnce(Scope) -> Fragment>;
#[component]
pub fn Styled(cx: Scope, styles: Result<stylist::Style>, children: Children) -> impl IntoView {
let style = styles.unwrap();
let class_name = style.get_class_name().to_owned();
let style_string = style.get_style_str().to_owned();
let re = Regex::new(r"(\.stylist-\w+) (\w+)").unwrap();
let result = re.replace_all(&style_string, "$2$1").to_string();
view! { cx,
class=class_name,
<Style>{result}</Style>
<div>
{children(cx)}
</div>
}
}