From f746ece61b8d2c4088e5d1dc3acbf00b089ad3e2 Mon Sep 17 00:00:00 2001 From: Satyajit Sahoo Date: Wed, 5 Feb 2020 09:42:01 +0100 Subject: [PATCH] fix: use addListener only when available --- .../stack/src/views/Stack/CardContainer.tsx | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/packages/stack/src/views/Stack/CardContainer.tsx b/packages/stack/src/views/Stack/CardContainer.tsx index c8c69d92..c67124f0 100644 --- a/packages/stack/src/views/Stack/CardContainer.tsx +++ b/packages/stack/src/views/Stack/CardContainer.tsx @@ -1,12 +1,5 @@ import * as React from 'react'; -import { - Animated, - View, - StyleSheet, - StyleProp, - ViewStyle, - Platform, -} from 'react-native'; +import { Animated, View, StyleSheet, StyleProp, ViewStyle } from 'react-native'; import { Route, useTheme } from '@react-navigation/native'; import { Props as HeaderContainerProps } from '../Header/HeaderContainer'; import Card from './Card'; @@ -141,18 +134,18 @@ function CardContainer({ ); React.useEffect(() => { - if (Platform.OS === 'web') { - return; - } - const valueListenerCallback = ({ value }: { value: number }) => { - setPointerEvents(value <= EPSILON ? 'box-none' : 'none'); - }; + // `addListener` may not exist on web and older versions of React Native // @ts-ignore - const listener = scene.progress.next?.addListener(valueListenerCallback); + const listener = scene.progress.next?.addListener?.( + ({ value }: { value: number }) => { + setPointerEvents(value <= EPSILON ? 'box-none' : 'none'); + } + ); + return () => { if (listener) { // @ts-ignore - scene.progress.next?.removeListener(listener); + scene.progress.next?.removeListener?.(listener); } }; }, [pointerEvents, scene.progress.next]);