use dioxus::prelude::*; use dioxus_i18n::t; use crate::components::{H1, HR, P}; #[component] pub fn Impressum() -> Element { let mut impressum = use_signal(Vec::::new); let mut contact = use_signal(Vec::::new); rsx! { div { div { class: "flex flex-col items-center", button { onclick: move |_| async move { if let Ok(data) = get_impressum().await { impressum.set(data.clone()); } if let Ok(data) = get_contact().await { contact.set(data.clone()); } }, H1 { { t!("impressum_on") } }, }, }, div { class: "flex flex-col items-center", for line in impressum() { P { {line} } } } if !impressum.read().is_empty() { HR{} }, div { class: "flex flex-col items-center", for line in contact() { P { {line} } } } } } } #[server(GetServerData)] async fn get_impressum() -> Result, ServerFnError> { Ok(vec![ "Tuan-Dat Tran".to_string(), "c/o AutorenServices.de".to_string(), "Birkenallee 24".to_string(), "36037 Fulda".to_string(), ]) } async fn get_contact() -> Result, ServerFnError> { Ok(vec![ "tuan-dat.tran(at)tudattr(dot)dev".to_string(), "+49 17(six) 83(four)683(eight)8".to_string(), ]) }