use yew::prelude::*; use crate::routing::{AppView, ViewContext}; #[derive(Properties, PartialEq)] pub struct SidebarProps { pub current_view: AppView, pub current_context: ViewContext, pub is_visible: bool, pub on_view_change: Callback, } #[function_component(Sidebar)] pub fn sidebar(props: &SidebarProps) -> Html { let current_view = props.current_view.clone(); let current_context = props.current_context.clone(); let on_view_change = props.on_view_change.clone(); let sidebar_class = if props.is_visible { "sidebar shadow-sm border-end d-flex show" } else { "sidebar shadow-sm border-end d-flex" }; // All possible navigation items let all_nav_items = vec![ AppView::Home, AppView::Administration, AppView::PersonAdministration, AppView::Accounting, AppView::Contracts, AppView::Governance, AppView::Treasury, AppView::Entities, ]; // Filter items based on current context let nav_items: Vec = all_nav_items .into_iter() .filter(|view| view.is_available_for_context(¤t_context)) .collect(); html! { } }