import { fetchBarcodeDataForPrint } from '@/app/lib/actions/printActions'; import { notFound } from 'next/navigation'; import { PrintPreview } from '@/app/ui/PrintPreview'; import { getTranslations } from 'next-intl/server'; interface PrintPageProps { params: { year: string; month: string; locale: string; }; } export default async function PrintPage({ params }: PrintPageProps) { const year = parseInt(params.year); const month = parseInt(params.month); // Validate year and month parameters if (isNaN(year) || isNaN(month) || month < 1 || month > 12) { notFound(); } let printData; try { printData = await fetchBarcodeDataForPrint(year, month); } catch (error) { console.error('Error fetching print data:', error); notFound(); } // Get translations for the current locale const t = await getTranslations("home-page.print-preview"); const yearMonth = `${year}-${month.toString().padStart(2, '0')}`; const translations = { title: t("title"), barcodesFound: t("barcodes-found"), barcodeSingular: t("barcode-singular"), printButton: t("print-button"), printFooter: t("print-footer", { date: new Date().toLocaleDateString() }), tableHeaderIndex: t("table-header-index"), tableHeaderBillInfo: t("table-header-bill-info"), tableHeaderBarcode: t("table-header-barcode"), emptyStateTitle: t("empty-state-title"), emptyStateMessage: t("empty-state-message", { yearMonth }) }; // If no barcode data found, show empty state if (!printData || printData.length === 0) { return (

{translations.emptyStateTitle}

{translations.emptyStateMessage}

); } return ; }