Files
accounted/app/(dashboard)/loading.tsx
T
Jakob WennbergandClaude Opus 4.6 f3ec634a46 feat: open-source under AGPL-3.0, redesign UI to grayscale palette, add uncategorize API, fix VAT account names
Add LICENSE (AGPL-3.0-or-later), CONTRIBUTING.md, SECURITY.md, DCO, and NOTICE files.
Rewrite README for open-source audience with self-hosting instructions.
Redesign color palette to grayscale chrome theme across all components.
Add transaction uncategorize API route with tests.
Fix VAT account name mismatches in migration 052.
Improve import page with SIE file support and loading skeleton.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 18:18:11 +01:00

53 lines
1.6 KiB
TypeScript

import { Skeleton } from '@/components/ui/skeleton'
export default function DashboardLoading() {
return (
<div className="space-y-6">
{/* Header */}
<div className="space-y-2">
<Skeleton className="h-8 w-48" />
<Skeleton className="h-4 w-72" />
</div>
{/* Summary cards */}
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
{[1, 2, 3, 4].map((i) => (
<div key={i} className="rounded-xl border border-border/60 bg-card p-4 space-y-2">
<Skeleton className="h-3.5 w-20" />
<Skeleton className="h-7 w-28" />
<Skeleton className="h-3 w-16" />
</div>
))}
</div>
{/* Quick actions */}
<div className="grid grid-cols-2 md:grid-cols-4 gap-2.5">
{[1, 2, 3, 4].map((i) => (
<Skeleton key={i} className="h-10 rounded-lg" />
))}
</div>
{/* Alerts + Deadlines */}
<div className="grid gap-3 md:grid-cols-2">
{/* Alerts */}
<div className="rounded-xl border border-border/60 bg-card p-4 space-y-3">
<Skeleton className="h-5 w-24" />
<Skeleton className="h-4 w-full" />
<Skeleton className="h-4 w-3/4" />
</div>
{/* Deadlines */}
<div className="rounded-xl border border-border/60 bg-card p-4 space-y-3">
<Skeleton className="h-5 w-32" />
{[1, 2, 3].map((i) => (
<div key={i} className="flex items-center justify-between">
<Skeleton className="h-4 w-36" />
<Skeleton className="h-4 w-20" />
</div>
))}
</div>
</div>
</div>
)
}