Skip to content

Instantly share code, notes, and snippets.

@Landerson352
Created September 21, 2019 16:16
Show Gist options
  • Save Landerson352/b27d1d177d76d5846f7770173fdcdca1 to your computer and use it in GitHub Desktop.
Save Landerson352/b27d1d177d76d5846f7770173fdcdca1 to your computer and use it in GitHub Desktop.
import { useState } from 'react';
const useToggle = (initialState = false) => {
const [isActive, setIsActive] = useState(initialState);
const isInactive = !isActive;
const deactivate = () => setIsActive(false);
const activate = () => setIsActive(true);
const toggle = () => setIsActive(((value) => !value));
return {
isActive,
isInactive,
deactivate,
activate,
isOpen: isActive,
isClosed: isInactive,
close: deactivate,
open: activate,
isExpanded: isActive,
isCollapsed: isInactive,
collapse: deactivate,
expand: activate,
isChecked: isActive,
isUnchecked: isInactive,
uncheck: deactivate,
check: activate,
isOn: isActive,
isOff: isInactive,
turnOff: deactivate,
turnOn: activate,
isVisible: isActive,
isHidden: isInactive,
hide: deactivate,
show: activate,
isSelected: isActive,
isDeselected: isInactive,
deselect: deactivate,
select: activate,
toggle,
flip: toggle,
switch: toggle,
invert: toggle,
};
};
export default useToggle;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment