Improvements to notifications screen [APP-520] (#501)
* Refresh or sync notifications when the tab is navigated to * Fix to bad textnode render * Speed up initial session load * Fix lint * Restore updateSessionState() on session resumption
This commit is contained in:
parent
f2fe4abdce
commit
e02c926c8a
4 changed files with 57 additions and 10 deletions
|
@ -13,6 +13,7 @@ import {InvitedUsers} from '../com/notifications/InvitedUsers'
|
|||
import {LoadLatestBtn} from 'view/com/util/load-latest/LoadLatestBtn'
|
||||
import {useStores} from 'state/index'
|
||||
import {useOnMainScroll} from 'lib/hooks/useOnMainScroll'
|
||||
import {useTabFocusEffect} from 'lib/hooks/useTabFocusEffect'
|
||||
import {s} from 'lib/styles'
|
||||
import {useAnalytics} from 'lib/analytics'
|
||||
|
||||
|
@ -58,6 +59,27 @@ export const NotificationsScreen = withAuthRequired(
|
|||
}
|
||||
}, [store, screen, onPressLoadLatest]),
|
||||
)
|
||||
useTabFocusEffect(
|
||||
'Notifications',
|
||||
React.useCallback(
|
||||
isInside => {
|
||||
// on mobile:
|
||||
// fires with `isInside=true` when the user navigates to the root tab
|
||||
// but not when the user goes back to the screen by pressing back
|
||||
// on web:
|
||||
// essentially equivalent to useFocusEffect because we dont used tabbed
|
||||
// navigation
|
||||
if (isInside) {
|
||||
if (store.me.notifications.unreadCount > 0) {
|
||||
store.me.notifications.refresh()
|
||||
} else {
|
||||
store.me.notifications.syncQueue()
|
||||
}
|
||||
}
|
||||
},
|
||||
[store],
|
||||
),
|
||||
)
|
||||
|
||||
return (
|
||||
<View testID="notificationsScreen" style={s.hContentRegion}>
|
||||
|
|
|
@ -95,11 +95,11 @@ const NavItem = observer(
|
|||
<Link href={href} style={styles.navItem}>
|
||||
<View style={[styles.navItemIconWrapper]}>
|
||||
{isCurrent ? iconFilled : icon}
|
||||
{typeof count === 'string' && count && (
|
||||
{typeof count === 'string' && count ? (
|
||||
<Text type="button" style={styles.navItemCount}>
|
||||
{count}
|
||||
</Text>
|
||||
)}
|
||||
) : null}
|
||||
</View>
|
||||
<Text type="title" style={[isCurrent ? s.bold : s.normal, pal.text]}>
|
||||
{label}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue