import { redirect } from 'next/navigation'; import { headers } from 'next/headers'; import { eq } from 'drizzle-orm'; import { auth } from '@/lib/auth'; import { db } from '@/lib/db'; import { userPortRoles } from '@/lib/db/schema/users'; import { QueryProvider } from '@/providers/query-provider'; import { SocketProvider } from '@/providers/socket-provider'; import { PortProvider } from '@/providers/port-provider'; import { PermissionsProvider } from '@/providers/permissions-provider'; import { Sidebar } from '@/components/layout/sidebar'; import { Topbar } from '@/components/layout/topbar'; export default async function DashboardLayout({ children }: { children: React.ReactNode }) { const session = await auth.api.getSession({ headers: await headers() }); if (!session?.user) redirect('/login'); // Load user's port assignments for PortProvider const portRoles = await db.query.userPortRoles.findMany({ where: eq(userPortRoles.userId, session.user.id), with: { port: true, role: true }, }); const ports = portRoles.map((pr) => pr.port); return (
{children}
); }