fix: use addListener only when available

This commit is contained in:
Satyajit Sahoo
2020-02-05 09:42:01 +01:00
parent 264537bdb4
commit f746ece61b

View File

@@ -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]);