diff --git a/packages/bottom-tabs/src/views/Badge.tsx b/packages/bottom-tabs/src/views/Badge.tsx index de01953b..db2f9107 100644 --- a/packages/bottom-tabs/src/views/Badge.tsx +++ b/packages/bottom-tabs/src/views/Badge.tsx @@ -48,6 +48,8 @@ export default function Badge({ setRendered(false); } }); + + return () => opacity.stopAnimation(); }, [opacity, rendered, visible]); if (visible && !rendered) { diff --git a/packages/bottom-tabs/src/views/BottomTabBar.tsx b/packages/bottom-tabs/src/views/BottomTabBar.tsx index 57c8a694..b715da96 100644 --- a/packages/bottom-tabs/src/views/BottomTabBar.tsx +++ b/packages/bottom-tabs/src/views/BottomTabBar.tsx @@ -206,6 +206,8 @@ export default function BottomTabBar({ ...visibilityAnimationConfig?.hide?.config, }).start(); } + + return () => visible.stopAnimation(); }, [visible, shouldShowTabBar]); const [layout, setLayout] = React.useState({ diff --git a/packages/stack/src/views/BorderlessButton.tsx b/packages/stack/src/views/BorderlessButton.tsx deleted file mode 100644 index f91f2972..00000000 --- a/packages/stack/src/views/BorderlessButton.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import * as React from 'react'; -import { Animated, Platform } from 'react-native'; -import { BaseButton, BaseButtonProperties } from 'react-native-gesture-handler'; - -const AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton); - -type Props = BaseButtonProperties & { - pressOpacity: number; -}; - -const useNativeDriver = Platform.OS !== 'web'; - -export default class BorderlessButton extends React.Component { - static defaultProps = { - activeOpacity: 0.3, - borderless: true, - }; - - private opacity = new Animated.Value(1); - - private handleActiveStateChange = (active: boolean) => { - if (Platform.OS !== 'android') { - Animated.spring(this.opacity, { - stiffness: 1000, - damping: 500, - mass: 3, - overshootClamping: true, - restDisplacementThreshold: 0.01, - restSpeedThreshold: 0.01, - toValue: active ? this.props.pressOpacity : 1, - useNativeDriver, - }).start(); - } - - this.props.onActiveStateChange?.(active); - }; - - render() { - const { children, style, enabled, ...rest } = this.props; - - return ( - - {children} - - ); - } -} diff --git a/packages/stack/src/views/Stack/Card.tsx b/packages/stack/src/views/Stack/Card.tsx index a013ff9e..f20afb51 100755 --- a/packages/stack/src/views/Stack/Card.tsx +++ b/packages/stack/src/views/Stack/Card.tsx @@ -141,6 +141,7 @@ export default class Card extends React.Component { } componentWillUnmount() { + this.props.gesture.stopAnimation(); this.isCurrentlyMounted = false; this.handleEndInteraction(); }