/* openbills-web - Web client for Libre Billing Software * Copyright (C) 2023 Vidhu Kant Sharma * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ use yew::prelude::*; use yew_router::prelude::*; use crate::app::Route; #[derive(Properties, PartialEq)] pub struct Props { pub label: String, pub to: Route, } #[function_component(NavLink)] pub fn nav_link(props: &Props) -> Html { let route = use_route::().unwrap_or_default(); let classes = if route == props.to { classes!("active") } else { classes!("") }; html! { classes={classes} to={props.to.clone()}> {props.label.clone()} > } }