summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer/components/Modal.tsx
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2022-09-07 15:57:09 +0200
committerOskar Nyberg <oskar@mullvad.net>2022-09-09 09:33:44 +0200
commit04b2f58527e7ec60a18de93108dacd4bf99e70fe (patch)
tree2a450ed4d00f333fdeeeaf946481d006f21b3b57 /gui/src/renderer/components/Modal.tsx
parent79bd0197520fe657564a16c19c59474231eca394 (diff)
downloadmullvadvpn-04b2f58527e7ec60a18de93108dacd4bf99e70fe.tar.xz
mullvadvpn-04b2f58527e7ec60a18de93108dacd4bf99e70fe.zip
Add component for pausing redux
Diffstat (limited to 'gui/src/renderer/components/Modal.tsx')
-rw-r--r--gui/src/renderer/components/Modal.tsx12
1 files changed, 10 insertions, 2 deletions
diff --git a/gui/src/renderer/components/Modal.tsx b/gui/src/renderer/components/Modal.tsx
index f6fa9f25b4..8d96d47c7b 100644
--- a/gui/src/renderer/components/Modal.tsx
+++ b/gui/src/renderer/components/Modal.tsx
@@ -4,6 +4,7 @@ import styled from 'styled-components';
import { colors } from '../../config.json';
import log from '../../shared/logging';
+import { usePause } from '../lib/pause-rendering';
import { tinyText } from './common-styles';
import CustomScrollbars from './CustomScrollbars';
import ImageView from './ImageView';
@@ -162,12 +163,19 @@ export function ModalAlert(props: IModalAlertProps & { isOpen: boolean }) {
const [closing, setClosing] = useState(false);
const prevIsOpen = useRef(isOpen);
- const onTransitionEnd = useCallback(() => setClosing(false), []);
+ const [paused, runIfNotPaused] = usePause();
+
useEffect(() => {
setClosing((closing) => closing || (prevIsOpen.current && !isOpen));
- prevIsOpen.current = isOpen;
+
+ // Unmounting the Modal during view transitions result in a visual glitch.
+ runIfNotPaused(() => {
+ prevIsOpen.current = isOpen;
+ });
}, [isOpen]);
+ const onTransitionEnd = useCallback(() => runIfNotPaused(() => setClosing(false)), [paused]);
+
if (!prevIsOpen.current && !isOpen && !closing) {
return null;
}