@xo-union/tk-component-header-nav
Version:
26 lines • 830 B
JavaScript
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 };