UNPKG

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

Version:
26 lines 830 B
import React from "react"; const useToggle = function () { let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; const [bool, setBool] = React.useState(init); const toggle = React.useCallback(() => { setBool(b => !b); }, []); const on = React.useCallback(() => setBool(true), []); const off = React.useCallback(() => setBool(false), []); return [bool, { toggle, on, off }]; }; const useNamedToggle = function () { let defaultName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; const [name, setName] = React.useState(defaultName); const on = React.useCallback(newName => setName(newName), []); const off = React.useCallback(() => setName(null), []); return [name, { on, off }]; }; export { useToggle, useNamedToggle };