opendash
Version:
open.DASH data visualization framework
24 lines • 871 B
JavaScript
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