use crate::route::Route; use dioxus::prelude::*; use dioxus_free_icons::{Icon, IconShape}; #[component] pub(crate) fn NavigationItem( route: Route, icon: I, ) -> Element { let current_route = use_route::(); rsx! { Link { to: route.clone(), class: format!( "py-2.5 flex flex-row justify-center items-center hover:*:bg-gray-900 active:*:text-gray-400", ), div { class: format!("pt-2.5 px-4 {} transition-all duration-150", if current_route == route { "pb-2 mt-1 bg-gray-900 text-gray-400 rounded-xl drop-shadow-[0_calc(0px_-_var(--spacing))_0_var(--color-gray-950)]" } else { "pb-3 bg-gray-800 rounded-xl drop-shadow-[0_0_0_var(--color-gray-950)] text-gray-600" } ), Icon { icon, height: 24, width: 24 } } } } }