Skip to content

Commit f746ece

Browse files
committed
fix: use addListener only when available
1 parent 264537b commit f746ece

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

packages/stack/src/views/Stack/CardContainer.tsx

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
import * as React from 'react';
2-
import {
3-
Animated,
4-
View,
5-
StyleSheet,
6-
StyleProp,
7-
ViewStyle,
8-
Platform,
9-
} from 'react-native';
2+
import { Animated, View, StyleSheet, StyleProp, ViewStyle } from 'react-native';
103
import { Route, useTheme } from '@react-navigation/native';
114
import { Props as HeaderContainerProps } from '../Header/HeaderContainer';
125
import Card from './Card';
@@ -141,18 +134,18 @@ function CardContainer({
141134
);
142135

143136
React.useEffect(() => {
144-
if (Platform.OS === 'web') {
145-
return;
146-
}
147-
const valueListenerCallback = ({ value }: { value: number }) => {
148-
setPointerEvents(value <= EPSILON ? 'box-none' : 'none');
149-
};
137+
// `addListener` may not exist on web and older versions of React Native
150138
// @ts-ignore
151-
const listener = scene.progress.next?.addListener(valueListenerCallback);
139+
const listener = scene.progress.next?.addListener?.(
140+
({ value }: { value: number }) => {
141+
setPointerEvents(value <= EPSILON ? 'box-none' : 'none');
142+
}
143+
);
144+
152145
return () => {
153146
if (listener) {
154147
// @ts-ignore
155-
scene.progress.next?.removeListener(listener);
148+
scene.progress.next?.removeListener?.(listener);
156149
}
157150
};
158151
}, [pointerEvents, scene.progress.next]);

0 commit comments

Comments
 (0)