UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

26 lines 1.04 kB
import * as React from 'react'; export const useIsoLayoutEffect = typeof window === 'object' && !!window.document ? React.useLayoutEffect : React.useEffect; export const useBrowserLayoutEffect = typeof window === 'object' && !!window.document ? React.useLayoutEffect : () => { }; export const useSyncStore = (store) => React.useSyncExternalStore(store.subscribe, store.getSnapshot); const emptySyncStore = { getSnapshot: () => undefined, subscribe: () => () => { }, }; export const useSyncStoreOpt = (store = emptySyncStore) => React.useSyncExternalStore(store.subscribe, store.getSnapshot); export const useTimeout = (ms, deps = [ms]) => { const [ready, setReady] = React.useState(false); React.useEffect(() => { if (ready) setReady(false); const timer = setTimeout(() => { setReady(true); }, ms); return () => { clearTimeout(timer); }; }, // biome-ignore lint: manual deps deps); return ready; }; //# sourceMappingURL=hooks.js.map