dioxus_docs_kit/components/blog/
author_info.rs1use dioxus::prelude::*;
2
3use crate::blog::registry::BlogRegistry;
4
5#[component]
7pub fn AuthorInfo(author_id: String) -> Element {
8 let registry = use_context::<&'static BlogRegistry>();
9
10 let Some(author) = registry.get_author(&author_id) else {
11 return rsx! { span { class: "text-sm text-base-content/50", "{author_id}" } };
12 };
13
14 let inner = rsx! {
15 div { class: "flex items-center gap-2",
16 if let Some(ref avatar) = author.avatar {
17 img {
18 src: "{avatar}",
19 alt: "{author.name}",
20 class: "size-6 rounded-full",
21 }
22 }
23 span { class: "font-medium", "{author.name}" }
24 }
25 };
26
27 if let Some(ref url) = author.url {
28 rsx! {
29 a {
30 href: "{url}",
31 target: "_blank",
32 rel: "noopener noreferrer",
33 class: "hover:text-primary transition-colors",
34 {inner}
35 }
36 }
37 } else {
38 rsx! { {inner} }
39 }
40}