'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { useTranslations } from 'next-intl' import { Skeleton } from '@/components/ui/skeleton' import { PageHeader } from '@/components/ui/page-header' import { HelpPopover } from '@/components/ui/help-popover' import { EmptyState } from '@/components/ui/empty-state' import { useCompany } from '@/contexts/CompanyContext' import { useCompanySettings } from '@/components/settings/useSettings' import { FyPicker } from '@/components/common/FyPicker' import { ReportLibrary } from '@/components/reports/ReportLibrary' import { useRecentReports } from '@/components/reports/useRecentReports' import { getReport } from '@/lib/reports/catalog' /** * Reports catalog landing (concept "Tabellen"): one dry table grouped by * accounting taxonomy, with a "Senast öppnad" column instead of a separate * recents shelf. Selecting a report opens the focused /reports/[slug] route. * The fiscal year picked here persists (FyPicker localStorage) and is * restored on the focused page, so the choice carries across without URL * plumbing. */ export default function ReportsPage() { const router = useRouter() const [selectedPeriod, setSelectedPeriod] = useState('') const [isLoadingInit, setIsLoadingInit] = useState(true) const { company } = useCompany() const { settings } = useCompanySettings() const t = useTranslations('reports') const { openedAt, pushRecent } = useRecentReports(company?.id) // Open a report. Route-owning reports (cash flow, annual report, KPI, SIE) // navigate to their own page; the rest open the focused /reports/[slug] route. const openReport = (slug: string) => { const report = getReport(slug) if (report?.route) { const href = slug === 'arsredovisning' && selectedPeriod ? `${report.route}?period=${selectedPeriod}` : report.route router.push(href) return } pushRecent(slug) router.push(`/reports/${slug}`) } return (

{t('help_text')}

} action={ setSelectedPeriod(id || '')} includeAllOption={false} hideFuturePeriods onReady={() => setIsLoadingInit(false)} /> } /> {isLoadingInit ? (
{[1, 2, 3, 4, 5, 6].map((i) => ( ))}
) : !selectedPeriod ? ( ) : ( <>

{t('catalog_footnote')}

)}
) }