diff --git a/ui/src/pages/Admin/AdminLayout.module.css b/ui/src/pages/Admin/AdminLayout.module.css new file mode 100644 index 00000000..3d610f67 --- /dev/null +++ b/ui/src/pages/Admin/AdminLayout.module.css @@ -0,0 +1,69 @@ +.header { + display: flex; + align-items: center; + height: 48px; + padding: 0 16px; + background: var(--bg-surface); + border-bottom: 1px solid var(--border-subtle); +} + +.backBtn { + display: flex; + align-items: center; + gap: 6px; + background: none; + border: none; + color: var(--text-secondary); + font-size: 13px; + font-family: var(--font-body); + cursor: pointer; + padding: 6px 10px; + border-radius: var(--radius-sm); +} + +.backBtn:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.title { + flex: 1; + text-align: center; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.08em; + color: var(--text-muted); + text-transform: uppercase; +} + +.userSection { + display: flex; + align-items: center; + gap: 12px; +} + +.username { + font-size: 13px; + color: var(--text-secondary); + font-family: var(--font-body); +} + +.logoutBtn { + background: none; + border: 1px solid var(--border-subtle); + border-radius: var(--radius-sm); + padding: 4px 12px; + font-size: 12px; + color: var(--text-secondary); + cursor: pointer; + font-family: var(--font-body); +} + +.logoutBtn:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.content { + padding: 20px 24px 40px; +} diff --git a/ui/src/pages/Admin/AdminLayout.tsx b/ui/src/pages/Admin/AdminLayout.tsx index 19453f21..a3939591 100644 --- a/ui/src/pages/Admin/AdminLayout.tsx +++ b/ui/src/pages/Admin/AdminLayout.tsx @@ -1,5 +1,8 @@ import { Outlet, useNavigate, useLocation } from 'react-router'; import { Tabs } from '@cameleer/design-system'; +import { ArrowLeft, LogOut } from 'lucide-react'; +import { useAuthStore } from '../../auth/auth-store'; +import styles from './AdminLayout.module.css'; const ADMIN_TABS = [ { label: 'User Management', value: '/admin/rbac' }, @@ -13,15 +16,35 @@ const ADMIN_TABS = [ export default function AdminLayout() { const navigate = useNavigate(); const location = useLocation(); + const { username, logout } = useAuthStore(); + + const handleBack = () => navigate('/exchanges'); + const handleLogout = () => { + logout(); + navigate('/login'); + }; return (