mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at remove-hackfix 34 lines 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 isAtBookmarks: getTabState(state, 'Bookmarks') !== TabState.Outside, 13 isAtNotifications: 14 getTabState(state, 'Notifications') !== TabState.Outside, 15 isAtMyProfile: getTabState(state, 'MyProfile') !== TabState.Outside, 16 isAtMessages: getTabState(state, 'Messages') !== TabState.Outside, 17 } 18 19 if ( 20 !res.isAtHome && 21 !res.isAtSearch && 22 !res.isAtFeeds && 23 !res.isAtNotifications && 24 !res.isAtMyProfile && 25 !res.isAtMessages 26 ) { 27 // HACK for some reason useNavigationState will give us pre-hydration results 28 // and not update after, so we force isAtHome if all came back false 29 // -prf 30 res.isAtHome = true 31 } 32 return res 33 }) 34}