page.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { Suspense } from "react";
  2. import { LayoutConfigurationsTable } from "@/app/components/layout-configurations/LayoutConfigurationsTable";
  3. import { CreateLayoutConfigurationDialog } from "@/app/components/layout-configurations/CreateLayoutConfigurationDialog";
  4. import { Skeleton } from "@/components/ui/skeleton";
  5. export default function LayoutConfigurationsPage() {
  6. return (
  7. <div className="container mx-auto py-8 px-4">
  8. <div className="flex justify-between items-center mb-6">
  9. <h1 className="text-3xl font-bold">Layout Configurations</h1>
  10. <CreateLayoutConfigurationDialog />
  11. </div>
  12. <div className="bg-white rounded-lg shadow">
  13. <Suspense fallback={<LayoutConfigurationsSkeleton />}>
  14. <LayoutConfigurationsTable />
  15. </Suspense>
  16. </div>
  17. </div>
  18. );
  19. }
  20. function LayoutConfigurationsSkeleton() {
  21. return (
  22. <div className="p-4 space-y-4">
  23. {[...Array(5)].map((_, i) => (
  24. <div key={i} className="flex items-center space-x-4">
  25. <Skeleton className="h-12 w-full" />
  26. </div>
  27. ))}
  28. </div>
  29. );
  30. }