lecoffre-front/src/front/Hooks/useToggle.ts
2024-07-29 16:34:57 +02:00

28 lines
519 B
TypeScript

import { useCallback, useState } from "react";
export default function useToggle(defaultValue: boolean = false) {
const [active, setActive] = useState(defaultValue);
const toggle = useCallback((callback?: (isOpen: boolean) => void) => {
setActive((prev) => {
callback?.(!prev);
return !prev;
});
}, []);
const activate = useCallback(() => {
setActive(true);
}, []);
const deactivate = useCallback(() => {
setActive(false);
}, []);
return {
active,
toggle,
activate,
deactivate,
};
}