{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-debounced-memo",
  "title": "useDebounceMemo",
  "description": "A hook to debounce a memo",
  "registryDependencies": [
    "https://hookas.letstri.dev/r/use-debounced-callback.json"
  ],
  "files": [
    {
      "path": "registry/hooks/use-debounced-memo.ts",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { useDebouncedCallback } from './use-debounced-callback'\n\nexport function useDebouncedMemo<T>(factory: () => T, deps: React.DependencyList, delay: number) {\n  const [state, setState] = React.useState<T>(() => factory())\n\n  const factoryEvent = React.useEffectEvent(factory)\n\n  const debouncedSetState = useDebouncedCallback((value: T) => {\n    setState(value)\n  }, [], delay)\n\n  React.useEffect(() => {\n    debouncedSetState(factoryEvent())\n  }, [\n    debouncedSetState,\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    ...deps,\n  ])\n\n  return state\n}\n",
      "type": "registry:hook",
      "target": "hookas/use-debounced-memo.ts"
    }
  ],
  "type": "registry:hook"
}