@e-group/hooks
Version:
eGroup team react-hooks that share across projects.
37 lines (27 loc) • 980 B
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useTab;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _cache = _interopRequireDefault(require("./cache"));
function useTab(key, defaultValue) {
var _ref, _cache$get;
const _useState = (0, _react.useState)((_ref = (_cache$get = _cache.default.get(key)) !== null && _cache$get !== void 0 ? _cache$get : defaultValue) !== null && _ref !== void 0 ? _ref : 0),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
value = _useState2[0],
setValue = _useState2[1];
(0, _react.useEffect)(() => {
_cache.default.set(key, value);
}, [key, value]);
const handleChange = newValue => {
setValue(newValue);
};
return {
value,
handleChange,
setValue
};
}
;