saleor-dashboard/src/hooks/useModalDialogOpen/useModalDialogOpen.ts

27 lines
478 B
TypeScript
Raw Normal View History

2019-08-09 10:17:04 +00:00
import { useEffect, useState } from "react";
function useModalDialogOpen(
open: boolean,
cbs: {
onClose?: () => void;
onOpen?: () => void;
},
2019-08-09 10:17:04 +00:00
): void {
const [prevOpen, setPrevOpen] = useState(open);
useEffect(() => {
if (open !== prevOpen) {
setPrevOpen(open);
if (cbs.onOpen && open) {
cbs.onOpen();
}
if (cbs.onClose && !open) {
cbs.onClose();
}
}
}, [open]);
}
export default useModalDialogOpen;