Skip to content

Instantly share code, notes, and snippets.

@qkreltms
Last active April 18, 2021 12:19
Show Gist options
  • Select an option

  • Save qkreltms/b225a42c7e6463ffa4594618bb9ba9eb to your computer and use it in GitHub Desktop.

Select an option

Save qkreltms/b225a42c7e6463ffa4594618bb9ba9eb to your computer and use it in GitHub Desktop.
const useModal = (
  isVisible: boolean
): [
  boolean,
  React.Dispatch<React.SetStateAction<boolean>>,
  (event: React.KeyboardEvent<any>) => void
] => {
  const [isOpen, setIsOpen] = useState(isVisible);

  useEffect(() => {
    setIsOpen(isVisible);
  }, [isVisible]);

  const onToggleHandler = (event: React.KeyboardEvent<any>) => {
    setIsOpen(!isOpen);
  };

  return [isOpen, setIsOpen, onToggleHandler];
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment