@skbkontur/storybook-addon-live-examples
Version:
Storybook live examples plugin
38 lines (37 loc) • 1.38 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useStorage = useStorage;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
function useStorage(_ref) {
var storage = _ref.storage,
storageKey = _ref.storageKey;
var getCodeFromStorage = (0, _react.useCallback)(function () {
return storage && storageKey ? storage.getItem(storageKey) : null;
}, [storage, storageKey]);
var resetCodeInStorage = (0, _react.useCallback)(function () {
if (storage && storageKey) {
storage.removeItem(storageKey);
setCodeInStorage(null);
}
}, [storage, storageKey]);
var updateCodeInStorage = (0, _react.useCallback)(function (code) {
if (storage && storageKey) {
storage.setItem(storageKey, code);
setCodeInStorage(code);
}
}, [storage, storageKey]);
var _useState = (0, _react.useState)(getCodeFromStorage()),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
codeInStorage = _useState2[0],
setCodeInStorage = _useState2[1];
return {
codeInStorage: codeInStorage,
getCodeFromStorage: getCodeFromStorage,
resetCodeInStorage: resetCodeInStorage,
updateCodeInStorage: updateCodeInStorage
};
}