diff --git a/web/src/pages/AdminLayout.module.css b/web/src/pages/AdminLayout.module.css index 781d7e0..7e13de2 100644 --- a/web/src/pages/AdminLayout.module.css +++ b/web/src/pages/AdminLayout.module.css @@ -110,6 +110,28 @@ gap: 8px; } +/* Theme toggle button (super admin sidebar) */ +.themeToggle { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + border-radius: 8px; + border: none; + background: transparent; + color: var(--color-text-secondary); + font-size: 13px; + cursor: pointer; + transition: all 0.15s; + width: 100%; + text-align: left; +} + +.themeToggle:hover { + background: var(--color-sidebar-hover); + color: var(--color-primary); +} + .userInfo { display: flex; align-items: center; diff --git a/web/src/pages/AdminLayout.tsx b/web/src/pages/AdminLayout.tsx index 23ae22e..06b357f 100644 --- a/web/src/pages/AdminLayout.tsx +++ b/web/src/pages/AdminLayout.tsx @@ -1,5 +1,6 @@ import { NavLink, Outlet, useNavigate } from 'react-router-dom'; import { useAuthStore } from '../store/auth'; +import { useThemeStore } from '../store/theme'; import { useState, useCallback } from 'react'; import { authApi } from '../lib/api'; import logoImg from '../assets/logo_32.png'; @@ -20,6 +21,8 @@ const navItems = [ export function AdminLayout() { const user = useAuthStore((s) => s.user); const logout = useAuthStore((s) => s.logout); + const theme = useThemeStore((s) => s.theme); + const toggleTheme = useThemeStore((s) => s.toggleTheme); const navigate = useNavigate(); const [collapsed, setCollapsed] = useState(false); const [pwModalOpen, setPwModalOpen] = useState(false); @@ -94,6 +97,25 @@ export function AdminLayout() {