'use client' import { cn } from '@/lib/utils' import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, } from '@/components/ui/select' import type { EntityType } from '@/types' interface ReportItem { value: string label: string entityType?: EntityType } interface ReportCategory { label: string items: ReportItem[] } const CATEGORIES: ReportCategory[] = [ { label: 'Löpande', items: [ { value: 'resultatrapport', label: 'Resultatrapport' }, { value: 'balansrapport', label: 'Balansrapport' }, { value: 'trial-balance', label: 'Saldobalans' }, ], }, { label: 'Bokslut', items: [ { value: 'income-statement', label: 'Resultaträkning' }, { value: 'balance-sheet', label: 'Balansräkning' }, ], }, { label: 'Skatt & moms', items: [ { value: 'vat-declaration', label: 'Momsdeklaration' }, { value: 'periodisk-sammanstallning', label: 'Periodisk sammanställning' }, { value: 'ne-declaration', label: 'NE-bilaga', entityType: 'enskild_firma' }, { value: 'ink2-declaration', label: 'INK2', entityType: 'aktiebolag' }, ], }, { label: 'Huvudböcker', items: [ { value: 'huvudbok', label: 'Huvudbok' }, { value: 'grundbok', label: 'Grundbok' }, { value: 'kundreskontra', label: 'Kundreskontra' }, { value: 'supplier-ledger', label: 'Leverantörsreskontra' }, ], }, { label: 'Avstämning', items: [ { value: 'bank-reconciliation', label: 'Bankavstämning' }, ], }, ] interface ReportsNavProps { active: string onChange: (value: string) => void entityType?: EntityType } export function ReportsNav({ active, onChange, entityType }: ReportsNavProps) { const filtered = CATEGORIES .map(cat => ({ ...cat, items: cat.items.filter(item => !item.entityType || item.entityType === entityType), })) .filter(cat => cat.items.length > 0) return ( <> {/* Mobile: grouped select */}
{/* Desktop: vertical left rail */} ) }