mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
1import {useNavigationState} from '@react-navigation/native'
2
3import {getTabState, TabState} from 'lib/routes/helpers'
4
5export function useNavigationTabState() {
6 return useNavigationState(state => {
7 const res = {
8 isAtHome: getTabState(state, 'Home') !== TabState.Outside,
9 isAtSearch: getTabState(state, 'Search') !== TabState.Outside,
10 isAtFeeds: getTabState(state, 'Feeds') !== TabState.Outside,
11 isAtNotifications:
12 getTabState(state, 'Notifications') !== TabState.Outside,
13 isAtMyProfile: getTabState(state, 'MyProfile') !== TabState.Outside,
14 isAtMessages: getTabState(state, 'Messages') !== TabState.Outside,
15 }
16
17 if (
18 !res.isAtHome &&
19 !res.isAtSearch &&
20 !res.isAtFeeds &&
21 !res.isAtNotifications &&
22 !res.isAtMyProfile &&
23 !res.isAtMessages
24 ) {
25 // HACK for some reason useNavigationState will give us pre-hydration results
26 // and not update after, so we force isAtHome if all came back false
27 // -prf
28 res.isAtHome = true
29 }
30 return res
31 })
32}