{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-interval",
  "title": "UseInterval",
  "description": "Runs a callback at specified intervals.",
  "files": [
    {
      "path": "registry/hooks/use-interval.tsx",
      "content": "'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport function useInterval(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 interval\n  useEffect(() => {\n    if (delay === null) {\n      return;\n    }\n\n    const id = setInterval(() => {\n      savedCallback.current();\n    }, delay);\n\n    return () => clearInterval(id);\n  }, [delay]);\n}\n",
      "type": "registry:hook",
      "target": "hooks/guarahooks/use-interval.tsx"
    }
  ],
  "categories": [
    "utilities"
  ],
  "type": "registry:hook"
}