68 lines
2.6 KiB
Rust
68 lines
2.6 KiB
Rust
use yew::prelude::*;
|
|
use yew_router::prelude::*;
|
|
use crate::app::Route;
|
|
|
|
#[function_component(Navbar)]
|
|
pub fn navbar() -> Html {
|
|
let navigator = use_navigator().unwrap();
|
|
|
|
let on_dashboard_click = {
|
|
let navigator = navigator.clone();
|
|
Callback::from(move |_| navigator.push(&Route::Dashboard))
|
|
};
|
|
|
|
let on_runners_click = {
|
|
let navigator = navigator.clone();
|
|
Callback::from(move |_| navigator.push(&Route::Runners))
|
|
};
|
|
|
|
let on_add_runner_click = {
|
|
let navigator = navigator.clone();
|
|
Callback::from(move |_| navigator.push(&Route::AddRunner))
|
|
};
|
|
|
|
html! {
|
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="#">
|
|
<i class="bi bi-gear-fill me-2"></i>
|
|
{"Hero Supervisor Admin"}
|
|
</a>
|
|
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
|
|
data-bs-target="#navbarNav" aria-controls="navbarNav"
|
|
aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item">
|
|
<button class="nav-link btn btn-link" onclick={on_dashboard_click}>
|
|
<i class="bi bi-speedometer2 me-1"></i>
|
|
{"Dashboard"}
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="nav-link btn btn-link" onclick={on_runners_click}>
|
|
<i class="bi bi-cpu me-1"></i>
|
|
{"Runners"}
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="nav-link btn btn-link" onclick={on_add_runner_click}>
|
|
<i class="bi bi-plus-circle me-1"></i>
|
|
{"Add Runner"}
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="navbar-text">
|
|
<small class="text-muted">{"Connected to Supervisor"}</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
}
|
|
}
|