hyaenidae/templates/bar.rs.html

63 lines
2.3 KiB
HTML

@use crate::ActixLoader;
@use crate::nav::NavState;
@use hyaenidae_toolkit::templates::bar;
@use hyaenidae_toolkit::templates::{button, button_group};
@use hyaenidae_toolkit::{templates::icon, Size};
@use hyaenidae_toolkit::templates::icon_button;
@use hyaenidae_toolkit::{templates::link, Link};
@use i18n_embed_fl::fl;
@(loader: &ActixLoader, nav_state: &NavState)
@:bar(nav_state.dark(), "desktop-bar", {
<div>
@:link(&Link::current_tab("/").plain(true), {
<h2>@fl!(loader, "site-name")</h2>
})
</div>
<nav>
@if let Some(profile) = nav_state.profile() {
<div class="profile-nav">
<div class="toolkit-button-group">
@:button(&nav_state.submission_button(loader))
@:button(&nav_state.browse_button(loader))
@if nav_state.is_admin() {
@:button(&nav_state.admin_button(loader))
}
@if nav_state.has_notifications() {
@:icon_button("bell", &fl!(loader, "nav-notifications-button"), nav_state.notifications_path())
}
</div>
@:icon(&profile.icon(loader).size(Size::Tiny).class("bar-icon").dark(true))
</div>
} else {
@:button_group(&nav_state.buttons(loader))
}
</nav>
})
@:bar(nav_state.dark(), "mobile-bar", {
<div class="profile-nav">
@if let Some(profile) = nav_state.profile() {
@:icon(&profile.icon(loader).size(Size::Tiny).class("mobile-bar-icon").dark(true))
} else {
@:link(&Link::current_tab("/").plain(true), {
<h2>@fl!(loader, "site-name")</h2>
})
}
</div>
<div class="toolkit-button-group">
@if nav_state.profile().is_some() {
@:icon_button("upload", &fl!(loader, "nav-submission-button"), "/submissions/create")
@:icon_button("home", &fl!(loader, "feed-title"), "/")
}
@if nav_state.has_notifications() {
<div class="toolkit-button-group">
@:icon_button("bell", &fl!(loader, "nav-notifications-button"), nav_state.notifications_path())
</div>
}
<div class="nav-link">
@:icon_button("ellipsis-v", &fl!(loader, "nav-text"), nav_state.href())
</div>
</div>
})