diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2022-09-07 15:57:09 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2022-09-09 09:33:44 +0200 |
| commit | 04b2f58527e7ec60a18de93108dacd4bf99e70fe (patch) | |
| tree | 2a450ed4d00f333fdeeeaf946481d006f21b3b57 /gui/src/renderer/components/Modal.tsx | |
| parent | 79bd0197520fe657564a16c19c59474231eca394 (diff) | |
| download | mullvadvpn-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.tsx | 12 |
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; } |
