{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-promise",
  "title": "usePromise",
  "description": "A hook to handle promises",
  "registryDependencies": [
    "https://hookas.letstri.dev/r/use-isomorphic-effect.json"
  ],
  "files": [
    {
      "path": "registry/hooks/use-promise.ts",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { useIsomorphicEffect } from './use-isomorphic-effect'\n\nexport function usePromise<T>(promiseFn: () => Promise<T>): T | undefined\nexport function usePromise<T, D>(promiseFn: () => Promise<T>, initialData: D): T | D\nexport function usePromise<T, D>(\n  promiseFn: () => Promise<T>,\n  initialData?: D,\n) {\n  const [data, setData] = React.useState<T | D | undefined>(initialData)\n\n  useIsomorphicEffect(() => {\n    promiseFn().then(setData)\n  }, [])\n\n  return data\n}\n",
      "type": "registry:hook",
      "target": "hookas/use-promise.ts"
    }
  ],
  "type": "registry:hook"
}