planmymeal/app/components/PlannerLoader.tsx

33 lines
1,006 B
TypeScript
Raw Normal View History

2026-10-31 20:44:29 -05:00
"use client";
import dynamic from "next/dynamic";
import { Skeleton } from "@/components/base/skeleton/skeleton";
2026-10-31 20:44:29 -05:00
const PlannerDashboard = dynamic(() => import("./PlannerDashboard"), {
ssr: false,
loading: () => <DashboardSkeleton />,
});
export function PlannerLoader() {
return <PlannerDashboard />;
}
function DashboardSkeleton() {
return (
<div aria-busy="true" aria-label="Loading planner">
2026-10-31 20:44:29 -05:00
<div className="h-15 border-b border-line bg-surface" />
<div className="mx-auto grid max-w-7xl grid-cols-1 gap-6 px-4 pt-6 sm:px-6 lg:grid-cols-3">
<div className="space-y-6 lg:col-span-2">
<Skeleton className="h-36 rounded-3xl" />
2026-10-31 20:44:29 -05:00
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2">
{Array.from({ length: 4 }, (_, i) => (
<Skeleton key={i} className="h-44 rounded-3xl" />
2026-10-31 20:44:29 -05:00
))}
</div>
</div>
<Skeleton className="hidden h-[32rem] rounded-3xl lg:block" />
2026-10-31 20:44:29 -05:00
</div>
</div>
);
}