import { useCallback, useState } from "react"; type UseToggleArgs = { start: T, options: [T, T] }; /** * Custom hook for working with component state that toggles between two non-Boolean values */ const useToggle = ({ start, options }: UseToggleArgs) => { const [state, setState] = useState(start); const toggle = useCallback(() => { setState(prevState => options.filter(op => op != prevState)[0]); }, [options]); return [state, toggle] as const; }; export { useToggle };