531b3a7fef
- Redesigned login page with two-panel layout and branding - Added HexaDistro logo and theme toggle to sidebar/header - Refactored user update: roles via update endpoint, removed assignRole API/controller - Extended UpdateUserRequest for username, role, password changes - UserService.UpdateAsync syncs changes with AuthHex, with rollback - Stock balances client dedupes by itemId-locationId - Middleware matcher excludes static assets from auth checks - Improved localStorage clearing for user context - Added lucide-react for icons - Minor UI/code cleanups for consistency and UX
29 lines
875 B
TypeScript
29 lines
875 B
TypeScript
import { SidebarInset, SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar'
|
|
import { AppSidebar } from '@/components/layout/app-sidebar'
|
|
import { BottomNav } from '@/components/layout/bottom-nav'
|
|
import { ThemeToggle } from '@/components/layout/theme-toggle'
|
|
|
|
export default function DashboardLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode
|
|
}) {
|
|
return (
|
|
<SidebarProvider>
|
|
<AppSidebar />
|
|
<SidebarInset>
|
|
<header className="flex h-14 shrink-0 items-center gap-2 border-b border-border px-4">
|
|
<SidebarTrigger className="-ml-1 hidden md:flex" />
|
|
<div className="ml-auto">
|
|
<ThemeToggle />
|
|
</div>
|
|
</header>
|
|
<main className="flex flex-1 flex-col gap-4 p-4 pb-20 md:pb-4">
|
|
{children}
|
|
</main>
|
|
</SidebarInset>
|
|
<BottomNav />
|
|
</SidebarProvider>
|
|
)
|
|
}
|