use dioxus::prelude::*; #[derive(Debug, Clone, PartialEq)] pub struct BreadcrumbItem { pub label: String, pub view: Option, } #[component] pub fn Breadcrumb( items: Vec, on_navigate: EventHandler>, ) -> Element { rsx! { nav { class: "breadcrumb", for (i , item) in items.iter().enumerate() { if i > 0 { span { class: "breadcrumb-sep", " > " } } if i < items.len() - 1 { { let view = item.view.clone(); let label = item.label.clone(); rsx! { a { class: "breadcrumb-link", href: "#", onclick: move |e: Event| { e.prevent_default(); on_navigate.call(view.clone()); }, "{label}" } } } } else { span { class: "breadcrumb-current", "{item.label}" } } } } } }