2025-09-19 23:01:44 +00:00
|
|
|
import { useState } from "react"
|
|
|
|
|
import { Button } from "@/components/ui/button"
|
|
|
|
|
import { DirectoryContentTableSkeleton } from "./directory-content-table-skeleton"
|
|
|
|
|
import { DirectoryPageSkeleton } from "./directory-page-skeleton"
|
|
|
|
|
|
|
|
|
|
export function SkeletonDemo() {
|
|
|
|
|
const [showPageSkeleton, setShowPageSkeleton] = useState(false)
|
|
|
|
|
const [showTableSkeleton, setShowTableSkeleton] = useState(false)
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className="p-4 space-y-4">
|
|
|
|
|
<div className="flex gap-2">
|
2025-10-03 20:40:23 +00:00
|
|
|
<Button
|
2025-09-19 23:01:44 +00:00
|
|
|
onClick={() => setShowPageSkeleton(!showPageSkeleton)}
|
|
|
|
|
variant={showPageSkeleton ? "default" : "outline"}
|
|
|
|
|
>
|
|
|
|
|
{showPageSkeleton ? "Hide" : "Show"} Page Skeleton
|
|
|
|
|
</Button>
|
2025-10-03 20:40:23 +00:00
|
|
|
<Button
|
2025-09-19 23:01:44 +00:00
|
|
|
onClick={() => setShowTableSkeleton(!showTableSkeleton)}
|
|
|
|
|
variant={showTableSkeleton ? "default" : "outline"}
|
|
|
|
|
>
|
|
|
|
|
{showTableSkeleton ? "Hide" : "Show"} Table Skeleton
|
|
|
|
|
</Button>
|
|
|
|
|
</div>
|
2025-10-03 20:40:23 +00:00
|
|
|
|
2025-09-19 23:01:44 +00:00
|
|
|
{showPageSkeleton && (
|
|
|
|
|
<div className="border rounded-lg p-4">
|
2025-10-03 20:40:23 +00:00
|
|
|
<h3 className="text-lg font-semibold mb-4">
|
|
|
|
|
Directory Page Skeleton
|
|
|
|
|
</h3>
|
2025-09-19 23:01:44 +00:00
|
|
|
<DirectoryPageSkeleton />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2025-10-03 20:40:23 +00:00
|
|
|
|
2025-09-19 23:01:44 +00:00
|
|
|
{showTableSkeleton && (
|
|
|
|
|
<div className="border rounded-lg p-4">
|
2025-10-03 20:40:23 +00:00
|
|
|
<h3 className="text-lg font-semibold mb-4">
|
|
|
|
|
Directory Content Table Skeleton
|
|
|
|
|
</h3>
|
2025-09-19 23:01:44 +00:00
|
|
|
<DirectoryContentTableSkeleton rows={5} />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
)
|
2025-10-03 20:40:23 +00:00
|
|
|
}
|