mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
1import {StackActions, useNavigation} from '@react-navigation/native'
2
3import {NavigationProp} from '#/lib/routes/types'
4import {router} from '#/routes'
5
6export function useGoBack(onGoBack?: () => unknown) {
7 const navigation = useNavigation<NavigationProp>()
8 return () => {
9 onGoBack?.()
10 if (navigation.canGoBack()) {
11 navigation.goBack()
12 } else {
13 navigation.navigate('HomeTab')
14 // Checking the state for routes ensures that web doesn't encounter errors while going back
15 if (navigation.getState()?.routes) {
16 navigation.dispatch(StackActions.push(...router.matchPath('/')))
17 } else {
18 navigation.navigate('HomeTab')
19 navigation.dispatch(StackActions.popToTop())
20 }
21 }
22 }
23}