create-rivas-react
Version:
Boilerplate for create react with atomic design
27 lines (21 loc) • 503 B
text/typescript
import { useCallback, useState } from 'react';
export default function useModal(initialState = false) {
// State
const [isOpen, setIsOpen] = useState<boolean>(initialState);
// Handlers
const open = useCallback(() => {
setIsOpen(true);
}, []);
const close = useCallback(() => {
setIsOpen(false);
}, []);
const toggle = useCallback(() => {
setIsOpen((s) => !s);
}, []);
return {
isOpen,
openModal: open,
closeModal: close,
toggleModal: toggle,
};
}