@xo-union/tk-component-header-nav
Version:
35 lines (34 loc) • 1.28 kB
JavaScript
;
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.useToggle = exports.useNamedToggle = void 0;
var _react = _interopRequireDefault(require("react"));
const useToggle = function () {
let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
const [bool, setBool] = _react.default.useState(init);
const toggle = _react.default.useCallback(() => {
setBool(b => !b);
}, []);
const on = _react.default.useCallback(() => setBool(true), []);
const off = _react.default.useCallback(() => setBool(false), []);
return [bool, {
toggle,
on,
off
}];
};
exports.useToggle = useToggle;
const useNamedToggle = function () {
let defaultName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
const [name, setName] = _react.default.useState(defaultName);
const on = _react.default.useCallback(newName => setName(newName), []);
const off = _react.default.useCallback(() => setName(null), []);
return [name, {
on,
off
}];
};
exports.useNamedToggle = useNamedToggle;