Added dark theme to admin portal. Fixes #7

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 11:07:29 +02:00
co-authored by Claude Opus 5.5
parent 9abf87c34d
commit ed72dc20f9
12 changed files with 457 additions and 11 deletions
+13
View File
@@ -1,6 +1,7 @@
use leptos::prelude::*;
use crate::backend::data::User;
use crate::components::modal_box::{DialogOpener, ModalBody, ModalDialog};
use crate::components::theme::Theme;
use crate::components::user_menu::{MenuOpener, UserMenu};
use crate::locales::trl;
use crate::pages::change_pwd::ChangePassword;
@@ -71,8 +72,11 @@ pub fn AdminPortal(children: Children) -> impl IntoView {
let pw_changer = DialogOpener::new();
let drawer = use_context::<MenuOpener>().expect("No drawer opener");
let about_dlg = DialogOpener::new();
let theme = use_context::<Theme>().expect("No theme");
view! {
// Dark theme is limited to the admin portal: the stylesheet is loaded only here
<link rel="stylesheet" href="/css/dark.css" media=move || theme.mode().media()/>
<div class="layout-wrapper layout-content-navbar">
<div class="layout-container">
//<!-- Menu -->
@@ -141,6 +145,15 @@ pub fn AdminPortal(children: Children) -> impl IntoView {
<ul class="navbar-nav flex-row align-items-center ms-auto">
//<!-- Theme -->
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)"
title=move || trl(theme.mode().label())()
on:click=move |_| theme.cycle()>
<i class=move || theme.mode().icon()></i>
</a>
</li>
<li class="nav-item navbar-dropdown dropdown-user dropdown">
<a class="nav-link dropdown-toggle hide-arrow" href="#" on:click=move |_| settings_menu.toggle()>
<i class="bx bx-cog fs-3 lh-0"></i>