UNPKG

@xo-union/tk-component-header-nav

Version:
35 lines (34 loc) 1.28 kB
"use strict"; 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;