UNPKG

opendash

Version:

open.DASH data visualization framework

24 lines 871 B
import * as React from "react"; import { useForceRender, useStorageService } from ".."; export function useStorage(scope, key, defaultValue, options) { var ref = React.useRef(null); var service = useStorageService(scope); var forceRender = useForceRender(); var state = service._getSync(key, options) || defaultValue; ref.current = state; React.useEffect(function () { return service.subscribe(function () { if (service._getSync(key, options) !== ref.current) { forceRender(); } }); }, [scope, key, ref]); return [ state, // the normal useState + object freeze way "replaceDraft" React.useCallback(function (value) { service.set(key, value, options); }, [scope, key]), ]; } //# sourceMappingURL=useStorage.js.map