diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2019-03-01 11:58:26 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2019-03-01 16:45:51 +0100 |
| commit | 93724ed5758e319919ca9d443315d59e442284fb (patch) | |
| tree | 522d48bd81c121581b90ec3779aa4eac8d9d4adc /gui/src | |
| parent | 8cab7fdaa2d4e9ccd8e67e9dddbcae6d0cd73329 (diff) | |
| download | mullvadvpn-93724ed5758e319919ca9d443315d59e442284fb.tar.xz mullvadvpn-93724ed5758e319919ca9d443315d59e442284fb.zip | |
Replace pointerEvents style with ignorePointerEvents property
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/renderer/components/TransitionContainer.tsx | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/gui/src/renderer/components/TransitionContainer.tsx b/gui/src/renderer/components/TransitionContainer.tsx index e66871bec5..a2632653d3 100644 --- a/gui/src/renderer/components/TransitionContainer.tsx +++ b/gui/src/renderer/components/TransitionContainer.tsx @@ -11,6 +11,7 @@ interface IState { childrenAnimation?: Types.AnimatedViewStyleRuleSet; previousChildrenAnimation?: Types.AnimatedViewStyleRuleSet; dimensions: Types.Dimensions; + isAnimating: boolean; } const dimensions = UserInterface.measureWindow(); @@ -33,6 +34,7 @@ const styles = { export default class TransitionContainer extends Component<IProps, IState> { public state: IState = { dimensions: UserInterface.measureWindow(), + isAnimating: false, }; public UNSAFE_componentWillReceiveProps(nextProps: IProps) { @@ -54,12 +56,13 @@ export default class TransitionContainer extends Component<IProps, IState> { } } - public onFinishedAnimation() { + public onFinishedAnimation = (_result: Types.Animated.EndResult) => { this.setState({ childrenAnimation: styles.allowPointerEventsStyle, previousChildren: null, + isAnimating: false, }); - } + }; public slideUpTransition(nextProps: IProps) { const currentTranslationValue = Animated.createValue(this.state.dimensions.height); @@ -68,23 +71,22 @@ export default class TransitionContainer extends Component<IProps, IState> { previousChildren: this.props.children, childrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 1, transform: [{ translateY: currentTranslationValue }], }), previousChildrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 0, transform: [{ translateY: Animated.createValue(0) }], }), + isAnimating: true, }, () => { Animated.timing(currentTranslationValue, { toValue: 0, easing: Animated.Easing.InOut(), duration: nextProps.duration, - }).start(() => this.onFinishedAnimation()); + }).start(this.onFinishedAnimation); }, ); } @@ -96,23 +98,22 @@ export default class TransitionContainer extends Component<IProps, IState> { previousChildren: this.props.children, childrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 0, transform: [{ translateY: Animated.createValue(0) }], }), previousChildrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 1, transform: [{ translateY: previousTranslationValue }], }), + isAnimating: true, }, () => { Animated.timing(previousTranslationValue, { toValue: this.state.dimensions.height, easing: Animated.Easing.InOut(), duration: nextProps.duration, - }).start(() => this.onFinishedAnimation()); + }).start(this.onFinishedAnimation); }, ); } @@ -125,16 +126,15 @@ export default class TransitionContainer extends Component<IProps, IState> { previousChildren: this.props.children, childrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 1, transform: [{ translateX: currentTranslationValue }], }), previousChildrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 0, transform: [{ translateX: previousTranslationValue }], }), + isAnimating: true, }, () => { const compositeAnimation = Animated.parallel([ @@ -149,7 +149,7 @@ export default class TransitionContainer extends Component<IProps, IState> { duration: nextProps.duration, }), ]); - compositeAnimation.start(() => this.onFinishedAnimation()); + compositeAnimation.start(this.onFinishedAnimation); }, ); } @@ -162,16 +162,15 @@ export default class TransitionContainer extends Component<IProps, IState> { previousChildren: this.props.children, childrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 0, transform: [{ translateX: currentTranslationValue }], }), previousChildrenAnimation: Styles.createAnimatedViewStyle({ // @ts-ignore - pointerEvents: 'none', zIndex: 1, transform: [{ translateX: previousTranslationValue }], }), + isAnimating: true, }, () => { const compositeAnimation = Animated.parallel([ @@ -186,17 +185,22 @@ export default class TransitionContainer extends Component<IProps, IState> { duration: nextProps.duration, }), ]); - compositeAnimation.start(() => this.onFinishedAnimation()); + compositeAnimation.start(this.onFinishedAnimation); }, ); } public render() { const { children } = this.props; - const { previousChildren, childrenAnimation, previousChildrenAnimation } = this.state; + const { + isAnimating, + previousChildren, + childrenAnimation, + previousChildrenAnimation, + } = this.state; return ( - <View style={styles.transitionContainerStyle}> + <View style={styles.transitionContainerStyle} ignorePointerEvents={isAnimating}> {previousChildren && ( <Animated.View key={getChildKey(previousChildren)} |
