Files
evidencija-rezija/app/[locale]/home/multi-bill-edit/[year]/[month]/page.tsx
Nikola Derežić 0145a2030d feat: add multi-bill-edit page for batch bill status updates
- Add getLocationsByMonth server action with aggregation pipeline to calculate hasAttachment
- Add updateMonth server action for bulk bill status updates with path revalidation
- Create multi-bill-edit page at /home/multi-bill-edit/[year]/[month]
- Implement MultiBillEdit component with toggle functionality for all bills
- Add BillToggleBadge component integration for consistent bill display
- Add "set all as paid/unpaid" toggle button for batch operations
- Implement server-side redirect with success message after save
- Add Suspense boundary with loading skeleton
- Update translations for multi-bill-edit feature (Croatian and English)
- Ensure data freshness with unstable_noStore and revalidatePath

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 17:45:27 +01:00

22 lines
714 B
TypeScript

import { Suspense } from 'react';
import MultiBillEditPage from './MultiBillEditPage';
import { Main } from '@/app/ui/Main';
const MultiBillEditSkeleton = () => (
<div className="flex min-h-screen flex-col items-center justify-center p-6 bg-base-300">
<span className="loading loading-spinner loading-lg"></span>
<p className="mt-4">Loading...</p>
</div>
);
export default async function Page({ params }: { params: { year: string; month: string } }) {
return (
<Main>
<Suspense fallback={<MultiBillEditSkeleton />}>
<MultiBillEditPage year={parseInt(params.year)} month={parseInt(params.month)} />
</Suspense>
</Main>
);
}