@preact-signals/safe-react
Version:
Manage state with style in React
1 lines • 1.34 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","sources":["../../../src/lib/hooks.ts"],"sourcesContent":["import { signal, computed, effect } from \"@preact/signals-core\";\nimport { useRef, useMemo, useEffect } from \"react\";\n\nconst Empty = [] as const;\nexport function useSignal<T>(value: T) {\n return useMemo(() => signal<T>(value), Empty);\n}\n\nexport function useComputed<T>(compute: () => T) {\n const $compute = useRef(compute);\n $compute.current = compute;\n return useMemo(() => computed<T>(() => $compute.current()), Empty);\n}\n\nexport function useSignalEffect(cb: () => void | (() => void)) {\n const callback = useRef(cb);\n callback.current = cb;\n\n useEffect(() => {\n return effect(() => callback.current());\n }, Empty);\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,QAAQ,EAAC,CAAA;AACR,SAAS,UAAa,KAAU,EAAA;AACrC,EAAA,OAAO,OAAQ,CAAA,MAAM,MAAU,CAAA,KAAK,GAAG,KAAK,CAAA,CAAA;AAC9C,CAAA;AAEO,SAAS,YAAe,OAAkB,EAAA;AAC/C,EAAM,MAAA,QAAA,GAAW,OAAO,OAAO,CAAA,CAAA;AAC/B,EAAA,QAAA,CAAS,OAAU,GAAA,OAAA,CAAA;AACnB,EAAO,OAAA,OAAA,CAAQ,MAAM,QAAY,CAAA,MAAM,SAAS,OAAQ,EAAC,GAAG,KAAK,CAAA,CAAA;AACnE,CAAA;AAEO,SAAS,gBAAgB,EAA+B,EAAA;AAC7D,EAAM,MAAA,QAAA,GAAW,OAAO,EAAE,CAAA,CAAA;AAC1B,EAAA,QAAA,CAAS,OAAU,GAAA,EAAA,CAAA;AAEnB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAO,CAAA,MAAM,QAAS,CAAA,OAAA,EAAS,CAAA,CAAA;AAAA,KACrC,KAAK,CAAA,CAAA;AACV;;;;"}