@skbkontur/storybook-addon-live-examples
Version:
Storybook live examples plugin
31 lines • 1.11 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import { useCallback, useState } from 'react';
export function useStorage(_ref) {
var storage = _ref.storage,
storageKey = _ref.storageKey;
var getCodeFromStorage = useCallback(function () {
return storage && storageKey ? storage.getItem(storageKey) : null;
}, [storage, storageKey]);
var resetCodeInStorage = useCallback(function () {
if (storage && storageKey) {
storage.removeItem(storageKey);
setCodeInStorage(null);
}
}, [storage, storageKey]);
var updateCodeInStorage = useCallback(function (code) {
if (storage && storageKey) {
storage.setItem(storageKey, code);
setCodeInStorage(code);
}
}, [storage, storageKey]);
var _useState = useState(getCodeFromStorage()),
_useState2 = _slicedToArray(_useState, 2),
codeInStorage = _useState2[0],
setCodeInStorage = _useState2[1];
return {
codeInStorage: codeInStorage,
getCodeFromStorage: getCodeFromStorage,
resetCodeInStorage: resetCodeInStorage,
updateCodeInStorage: updateCodeInStorage
};
}