Fix animations

This commit is contained in:
Eric Bailey
2024-01-11 13:05:32 -06:00
parent 1da54e5364
commit c100f04a68
+17 -6
View File
@@ -39,13 +39,17 @@ export function Outer({
const t = useTheme() const t = useTheme()
const {gtMobile} = useBreakpoints() const {gtMobile} = useBreakpoints()
const [isOpen, setIsOpen] = React.useState(false) const [isOpen, setIsOpen] = React.useState(false)
const [isVisible, setIsVisible] = React.useState(true)
const open = React.useCallback(() => { const open = React.useCallback(() => {
setIsOpen(true) setIsOpen(true)
}, [setIsOpen]) }, [setIsOpen])
const close = React.useCallback(() => { const close = React.useCallback(async () => {
setIsVisible(false)
await new Promise(resolve => setTimeout(resolve, 150))
setIsOpen(false) setIsOpen(false)
setIsVisible(true)
onClose?.() onClose?.()
}, [onClose, setIsOpen]) }, [onClose, setIsOpen])
@@ -88,9 +92,10 @@ export function Outer({
a.flex_row, a.flex_row,
a.justify_center, a.justify_center,
]}> ]}>
{isVisible && (
<Animated.View <Animated.View
entering={FadeIn.duration(200)} entering={FadeIn.duration(150)}
exiting={FadeOut.duration(200)} exiting={FadeOut.duration(150)}
style={[ style={[
a.absolute, a.absolute,
a.inset_0, a.inset_0,
@@ -98,6 +103,7 @@ export function Outer({
{opacity: 0.8}, {opacity: 0.8},
]} ]}
/> />
)}
<View <View
style={[ style={[
@@ -114,12 +120,17 @@ export function Outer({
onStartShouldSetResponder={_ => true} onStartShouldSetResponder={_ => true}
onTouchEnd={stopPropagation}> onTouchEnd={stopPropagation}>
<FocusScope loop enabled trapped> <FocusScope loop enabled trapped>
{isVisible ? (
<Animated.View <Animated.View
entering={FadeInDown} aria-role="dialog"
exiting={FadeOut} entering={FadeInDown.duration(100)}
aria-role="dialog"> exiting={FadeOut.duration(100)}
style={{width: '100%'}}>
{children} {children}
</Animated.View> </Animated.View>
) : (
<View />
)}
</FocusScope> </FocusScope>
</View> </View>
</View> </View>