535d4d6cf7
* Add button to controls, respace * Hook up shadow and mutation * Add Bookmarks screen * Build out Bookmarks screen * Handle removals via shadow * Use truncateAndInvalidate strategy * Add empty state * Add toasts * Add undo buttons to toasts * Stage NUX, needs image * Finesse post controls * New reply icon * Use curvier variant of repost icon * Prevent layout shift with align_start * Update api pkg * Swap in new image * Limit spacing on desktop * Rm decimals over 10k * Better optimistic adding/removing * Add metrics * Comment * Remove unused code block * Remove debug limit * Fork shadow for web/native * Tweak alt * add preventExpansion: true * Refine hitslop * Add count to anchor * Reduce space in compact mode --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import {useNavigationState} from '@react-navigation/native'
|
|
|
|
import {getTabState, TabState} from '#/lib/routes/helpers'
|
|
|
|
export function useNavigationTabState() {
|
|
return useNavigationState(state => {
|
|
const res = {
|
|
isAtHome: getTabState(state, 'Home') !== TabState.Outside,
|
|
isAtSearch: getTabState(state, 'Search') !== TabState.Outside,
|
|
// FeedsTab no longer exists, but this check works for `Feeds` screen as well
|
|
isAtFeeds: getTabState(state, 'Feeds') !== TabState.Outside,
|
|
isAtBookmarks: getTabState(state, 'Bookmarks') !== TabState.Outside,
|
|
isAtNotifications:
|
|
getTabState(state, 'Notifications') !== TabState.Outside,
|
|
isAtMyProfile: getTabState(state, 'MyProfile') !== TabState.Outside,
|
|
isAtMessages: getTabState(state, 'Messages') !== TabState.Outside,
|
|
}
|
|
|
|
if (
|
|
!res.isAtHome &&
|
|
!res.isAtSearch &&
|
|
!res.isAtFeeds &&
|
|
!res.isAtNotifications &&
|
|
!res.isAtMyProfile &&
|
|
!res.isAtMessages
|
|
) {
|
|
// HACK for some reason useNavigationState will give us pre-hydration results
|
|
// and not update after, so we force isAtHome if all came back false
|
|
// -prf
|
|
res.isAtHome = true
|
|
}
|
|
return res
|
|
})
|
|
}
|