{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-timeout-effect",
  "title": "useTimeoutEffect",
  "description": "A hook to run an effect after a timeout",
  "files": [
    {
      "path": "registry/hooks/use-timeout-effect.ts",
      "content": "'use client'\n\nimport * as React from 'react'\n\nexport function useTimeoutEffect(effect: React.EffectCallback, timeout: number, deps: React.DependencyList) {\n  const effectEvent = React.useEffectEvent(effect)\n\n  React.useEffect(() => {\n    let destroy: ReturnType<React.EffectCallback> | undefined\n    const timer = setTimeout(() => {\n      destroy = effectEvent()\n    }, timeout)\n\n    return () => {\n      clearTimeout(timer)\n      if (destroy) {\n        destroy()\n      }\n    }\n  }, [\n    timeout,\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    ...deps,\n  ])\n}\n",
      "type": "registry:hook",
      "target": "hookas/use-timeout-effect.ts"
    }
  ],
  "type": "registry:hook"
}