{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "useCallbackEvent", "title": "useCallbackEvent", "description": "useCallbackEvent external hook", "files": [ { "path": "packages/external-hooks/src/useCallbackEvent/index.ts", "content": "import {\n useCallback,\n useRef,\n useImperativeHandle,\n // useEffectEvent,\n} from 'react';\n\nfunction useCallbackEvent unknown>(\n callback: T\n) {\n const property = useRef<{ callback: T }>(null);\n\n useImperativeHandle(property, () => ({ callback }));\n\n return useCallback((...args: Parameters) => {\n if (!property.current) throw 'callback is null';\n return property.current.callback(...args);\n }, []);\n}\n\nexport default useCallbackEvent;\n", "type": "registry:file", "target": "src/hooks/external-hooks/useCallbackEvent/index.ts" } ], "type": "registry:hook" }