@@ -2,7 +2,7 @@ import {isEmpty} from 'lodash';
2
2
import React , { useRef , useMemo , useCallback , useState , useImperativeHandle , forwardRef , ForwardedRef } from 'react' ;
3
3
import { StyleSheet , View as RNView } from 'react-native' ;
4
4
import hoistStatics from 'hoist-non-react-statics' ;
5
- import { useAnimatedStyle , useDerivedValue , useSharedValue , withTiming } from 'react-native-reanimated' ;
5
+ import { useAnimatedStyle , useDerivedValue } from 'react-native-reanimated' ;
6
6
import { PanGestureHandler } from 'react-native-gesture-handler' ;
7
7
import { Spacings , Colors , BorderRadiuses } from 'style' ;
8
8
import { asBaseComponent } from '../../commons/new' ;
@@ -47,7 +47,6 @@ const Dialog = (props: DialogProps, ref: ForwardedRef<DialogImperativeMethods>)
47
47
const { overlayBackgroundColor, ...otherModalProps } = modalProps ;
48
48
const initialVisibility = useRef ( propsVisibility ) ;
49
49
const [ visible , setVisible ] = useState ( propsVisibility ) ;
50
- const opacity = useSharedValue < number > ( Number ( propsVisibility ) ) ;
51
50
52
51
const directions = useMemo ( ( ) : DialogDirections [ ] => {
53
52
return [ direction ] ;
@@ -68,7 +67,6 @@ const Dialog = (props: DialogProps, ref: ForwardedRef<DialogImperativeMethods>)
68
67
const onTransitionAnimationEnd = useCallback ( ( type : TransitionViewAnimationType ) => {
69
68
if ( type === 'exit' ) {
70
69
setVisible ( false ) ;
71
- opacity . value = withTiming ( 0 , { duration : 0 } ) ;
72
70
onDismiss ?.( ) ;
73
71
}
74
72
} ,
@@ -89,20 +87,13 @@ const Dialog = (props: DialogProps, ref: ForwardedRef<DialogImperativeMethods>)
89
87
hiddenLocation
90
88
} ) ;
91
89
92
- const onInitPosition = useCallback ( ( ) => {
93
- if ( opacity . value === 0 ) {
94
- opacity . value = withTiming ( 1 , { duration : 0 } ) ;
95
- }
96
- // eslint-disable-next-line react-hooks/exhaustive-deps
97
- } , [ ] ) ;
98
-
99
90
const {
100
91
animateIn,
101
92
animateOut,
102
- translation : transitionTranslation
93
+ translation : transitionTranslation ,
94
+ isMounted
103
95
} = useAnimatedTransition ( {
104
96
hiddenLocation,
105
- onInitPosition,
106
97
enterFrom : direction ,
107
98
exitTo : direction ,
108
99
onAnimationStart : fade ,
@@ -149,7 +140,7 @@ const Dialog = (props: DialogProps, ref: ForwardedRef<DialogImperativeMethods>)
149
140
return {
150
141
transform : [ { translateX : translation . value . x } , { translateY : translation . value . y } ] ,
151
142
// TODO: do we want to take the component's opacity here? - I think combining opacities is buggy
152
- opacity : opacity . value
143
+ opacity : isMounted . value ? 1 : 0
153
144
} ;
154
145
// eslint-disable-next-line react-hooks/exhaustive-deps
155
146
} , [ ] ) ;
0 commit comments