summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2023-04-19 14:06:50 +0200
committerOskar Nyberg <oskar@mullvad.net>2023-04-19 14:06:50 +0200
commit6ba4724c1019bd377a47d5543ab4bfa636e4ba03 (patch)
treef78d9469556d5c8e1f206acfd5f30d6a0a9fe475
parent07d38405c12e5c224efdcae47089665e7f8c2335 (diff)
downloadmullvadvpn-6ba4724c1019bd377a47d5543ab4bfa636e4ba03.tar.xz
mullvadvpn-6ba4724c1019bd377a47d5543ab4bfa636e4ba03.zip
Enable pointer events on the new view when transitioning
-rw-r--r--gui/src/renderer/components/TransitionContainer.tsx16
1 files changed, 6 insertions, 10 deletions
diff --git a/gui/src/renderer/components/TransitionContainer.tsx b/gui/src/renderer/components/TransitionContainer.tsx
index 53f149ba6a..56315d5dcb 100644
--- a/gui/src/renderer/components/TransitionContainer.tsx
+++ b/gui/src/renderer/components/TransitionContainer.tsx
@@ -39,17 +39,11 @@ interface IState {
nextItemTransition?: Partial<IItemStyle>;
}
-export const StyledTransitionContainer = styled.div(
- {},
- (props: { disableUserInteraction: boolean }) => ({
- flex: 1,
- pointerEvents: props.disableUserInteraction ? 'none' : undefined,
- }),
-);
+export const StyledTransitionContainer = styled.div({ flex: 1 });
export const StyledTransitionContent = styled.div.attrs({ 'data-testid': 'transition-content' })(
{},
- (props: { transition?: IItemStyle }) => {
+ (props: { transition?: IItemStyle; disableUserInteraction?: boolean }) => {
const x = `${props.transition?.x ?? 0}%`;
const y = `${props.transition?.y ?? 0}%`;
const duration = props.transition?.duration ?? 450;
@@ -66,6 +60,7 @@ export const StyledTransitionContent = styled.div.attrs({ 'data-testid': 'transi
willChange: 'transform',
transform: `translate3d(${x}, ${y}, 0)`,
transition: `transform ${duration}ms ease-in-out`,
+ pointerEvents: props.disableUserInteraction ? 'none' : undefined,
};
},
);
@@ -132,13 +127,14 @@ export default class TransitionContainer extends React.Component<IProps, IState>
const willExit = this.state.queuedItem !== undefined || this.state.nextItem !== undefined;
return (
- <StyledTransitionContainer disableUserInteraction={willExit}>
+ <StyledTransitionContainer>
{this.state.currentItem && (
<WillExit key={this.state.currentItem.view.props.routePath} value={willExit}>
<StyledTransitionContent
ref={this.setCurrentContentRef}
transition={this.state.currentItemStyle}
- onTransitionEnd={this.onTransitionEnd}>
+ onTransitionEnd={this.onTransitionEnd}
+ disableUserInteraction={willExit}>
{this.state.currentItem.view}
</StyledTransitionContent>
</WillExit>