"use client"; import React from "react"; import { cn } from "@/lib/utils"; import { Skeleton } from "@/components/ui/skeleton"; import { useDebouncedVisibility } from "@/lib/frontend/hooks/useDebouncedVisibility"; /** * DebouncedSkeleton * * Behavior: * - Reserves layout space immediately (renders a plain div with sizing classes). * - Shows the animated Skeleton only after delayMs. * * This avoids "skeleton flicker" on fast loads. */ export function DebouncedSkeleton({ className, delayMs = 200, ...props }) { const visible = useDebouncedVisibility(true, { delayMs, minVisibleMs: 0 }); if (!visible) { // Reserve space, but do not show animation/background yet. return
; } return