import { createClient } from '@/lib/supabase/server' import { redirect } from 'next/navigation' import DashboardNav from '@/components/dashboard/DashboardNav' import { RecaptIdentify } from '@/components/RecaptIdentify' import { SentryIdentify } from '@/components/SentryIdentify' import { SandboxBanner } from '@/components/dashboard/SandboxBanner' import { getExtensionNavItems } from '@/lib/extensions/sectors' import type { EntityType } from '@/types' export default async function DashboardLayout({ children, }: { children: React.ReactNode }) { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser() if (!user) { redirect('/login') } const [{ data: settings }, { count: uncategorizedCount }] = await Promise.all([ supabase .from('company_settings') .select('company_name, onboarding_complete, entity_type, is_sandbox') .eq('user_id', user.id) .single(), supabase .from('transactions') .select('*', { count: 'exact', head: true }) .eq('user_id', user.id) .is('is_business', null), ]) if (!settings?.onboarding_complete) { redirect('/onboarding') } const entityType = (settings.entity_type as EntityType) || 'enskild_firma' const isSandbox = settings.is_sandbox === true return (