dioxus_docs_kit/components/blog/
related_posts.rs1use dioxus::prelude::*;
2
3use crate::blog::registry::BlogRegistry;
4
5use super::blog_card::BlogCard;
6
7#[component]
11pub fn RelatedPosts(slug: String, #[props(default = 3)] max: usize) -> Element {
12 let registry = use_context::<&'static BlogRegistry>();
13 let related = registry.related_posts(&slug, max);
14
15 if related.is_empty() {
16 return rsx! {};
17 }
18
19 rsx! {
20 section { class: "mt-16 pt-8 border-t border-base-300",
21 h2 { class: "text-xl font-semibold mb-6", "Related Posts" }
22 div { class: "grid grid-cols-1 md:grid-cols-3 gap-6",
23 for post in related {
24 BlogCard { key: "{post.slug}", post: post.clone() }
25 }
26 }
27 }
28 }
29}