{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-timeout",
  "title": "UseTimeout",
  "description": "Executes a callback after a specified delay.",
  "files": [
    {
      "path": "registry/hooks/use-timeout.tsx",
      "content": "'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport function useTimeout(callback: () => void, delay: number | null): void {\n  const savedCallback = useRef(callback);\n\n  // Remember the latest callback if it changes\n  useEffect(() => {\n    savedCallback.current = callback;\n  }, [callback]);\n\n  // Set up the timeout\n  useEffect(() => {\n    if (delay === null) {\n      return;\n    }\n\n    const id = setTimeout(() => {\n      savedCallback.current();\n    }, delay);\n\n    return () => clearTimeout(id);\n  }, [delay]);\n}\n",
      "type": "registry:hook",
      "target": "hooks/guarahooks/use-timeout.tsx"
    }
  ],
  "categories": [
    "utilities"
  ],
  "type": "registry:hook"
}