diff --git a/client/components/dialog.jsx b/client/components/dialog.jsx index 90d51753c..7bd4e5795 100644 --- a/client/components/dialog.jsx +++ b/client/components/dialog.jsx @@ -8,18 +8,24 @@ function Dialog({ dismissKey, closeText = 'Close', blocking = false, ...rest }) useEffect(()=>{ if(!dismissKey || !localStorage.getItem(dismissKey)) { - blocking ? dialogRef.current?.showModal() : dialogRef.current?.show(); - setOpen(true); + !open && setOpen(true); } }, []); + useEffect(()=>{ + if(open && !dialogRef.current?.open){ + blocking ? dialogRef.current?.showModal() : dialogRef.current?.show(); + } else { + dialogRef.current?.close(); + } + }, [open]); + const dismiss = ()=>{ dismissKey && localStorage.setItem(dismissKey, true); dialogRef.current?.close(); setOpen(false); }; - if(!open) return null; return ( ; };