import { useRef, useState } from 'react';

// eslint-disable-next-line import/prefer-default-export
export function useToggle(
  defaultState = false,
): [boolean, { toggleOn: () => void; toggleOff: () => void; toggle: () => void }] {
  const [state, setState] = useState(defaultState);
  const toggleOn = useRef(() => setState(true));
  const toggleOff = useRef(() => setState(false));
  const toggle = useRef(() => setState((s) => !s));
  return [
    state,
    {
      toggleOn: toggleOn.current,
      toggleOff: toggleOff.current,
      toggle: toggle.current,
    },
  ];
}