723896a45f
Co-authored-by: Hailey <me@haileyok.com> Co-authored-by: Eric Bailey <git@esb.lol>
24 lines
743 B
TypeScript
24 lines
743 B
TypeScript
import {StackActions, useNavigation} from '@react-navigation/native'
|
|
|
|
import {NavigationProp} from 'lib/routes/types'
|
|
import {router} from '#/routes'
|
|
|
|
export function useGoBack(onGoBack?: () => unknown) {
|
|
const navigation = useNavigation<NavigationProp>()
|
|
return () => {
|
|
onGoBack?.()
|
|
if (navigation.canGoBack()) {
|
|
navigation.goBack()
|
|
} else {
|
|
navigation.navigate('HomeTab')
|
|
// Checking the state for routes ensures that web doesn't encounter errors while going back
|
|
if (navigation.getState()?.routes) {
|
|
navigation.dispatch(StackActions.push(...router.matchPath('/')))
|
|
} else {
|
|
navigation.navigate('HomeTab')
|
|
navigation.dispatch(StackActions.popToTop())
|
|
}
|
|
}
|
|
}
|
|
}
|