mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at verify-code 1.2 kB view raw
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 // FeedsTab no longer exists, but this check works for `Feeds` screen as well 11 isAtFeeds: getTabState(state, 'Feeds') !== TabState.Outside, 12 isAtNotifications: 13 getTabState(state, 'Notifications') !== TabState.Outside, 14 isAtMyProfile: getTabState(state, 'MyProfile') !== TabState.Outside, 15 isAtMessages: getTabState(state, 'Messages') !== TabState.Outside, 16 } 17 18 if ( 19 !res.isAtHome && 20 !res.isAtSearch && 21 !res.isAtFeeds && 22 !res.isAtNotifications && 23 !res.isAtMyProfile && 24 !res.isAtMessages 25 ) { 26 // HACK for some reason useNavigationState will give us pre-hydration results 27 // and not update after, so we force isAtHome if all came back false 28 // -prf 29 res.isAtHome = true 30 } 31 return res 32 }) 33}