Feed and notifs improvements (#498)
* Reduce frequency of the notifications sync * Reduce frequency of home feed polling * Ensure loading spinner is visible in notifications * Render notifications loading spinner in the flatlist * Fixes and performance improvements to notifications * Render 30+ on notifications if at max * Fix issue with repeating posts in home feed * Dont check for unread notifs if we're already at max
This commit is contained in:
parent
b24ba3adc9
commit
04e0ebe8fc
9 changed files with 130 additions and 150 deletions
|
@ -203,9 +203,7 @@ export const DrawerContent = observer(() => {
|
|||
)
|
||||
}
|
||||
label="Notifications"
|
||||
count={
|
||||
store.me.notifications.unreadCount + store.invitedUsers.numNotifs
|
||||
}
|
||||
count={store.me.notifications.unreadCountLabel}
|
||||
bold={isAtNotifications}
|
||||
onPress={onPressNotifications}
|
||||
/>
|
||||
|
@ -291,7 +289,7 @@ function MenuItem({
|
|||
}: {
|
||||
icon: JSX.Element
|
||||
label: string
|
||||
count?: number
|
||||
count?: string
|
||||
bold?: boolean
|
||||
onPress: () => void
|
||||
}) {
|
||||
|
@ -307,14 +305,14 @@ function MenuItem({
|
|||
<View
|
||||
style={[
|
||||
styles.menuItemCount,
|
||||
count > 99
|
||||
count.length > 2
|
||||
? styles.menuItemCountHundreds
|
||||
: count > 9
|
||||
: count.length > 1
|
||||
? styles.menuItemCountTens
|
||||
: undefined,
|
||||
]}>
|
||||
<Text style={styles.menuItemCountLabel} numberOfLines={1}>
|
||||
{count > 999 ? `${Math.round(count / 1000)}k` : count}
|
||||
{count}
|
||||
</Text>
|
||||
</View>
|
||||
) : undefined}
|
||||
|
|
|
@ -132,9 +132,7 @@ export const BottomBar = observer(({navigation}: BottomTabBarProps) => {
|
|||
)
|
||||
}
|
||||
onPress={onPressNotifications}
|
||||
notificationCount={
|
||||
store.me.notifications.unreadCount + store.invitedUsers.numNotifs
|
||||
}
|
||||
notificationCount={store.me.notifications.unreadCountLabel}
|
||||
/>
|
||||
<Btn
|
||||
testID="bottomBarProfileBtn"
|
||||
|
@ -170,7 +168,7 @@ function Btn({
|
|||
}: {
|
||||
testID?: string
|
||||
icon: JSX.Element
|
||||
notificationCount?: number
|
||||
notificationCount?: string
|
||||
onPress?: (event: GestureResponderEvent) => void
|
||||
onLongPress?: (event: GestureResponderEvent) => void
|
||||
}) {
|
||||
|
|
|
@ -70,7 +70,7 @@ function BackBtn() {
|
|||
}
|
||||
|
||||
interface NavItemProps {
|
||||
count?: number
|
||||
count?: string
|
||||
href: string
|
||||
icon: JSX.Element
|
||||
iconFilled: JSX.Element
|
||||
|
@ -95,7 +95,7 @@ const NavItem = observer(
|
|||
<Link href={href} style={styles.navItem}>
|
||||
<View style={[styles.navItemIconWrapper]}>
|
||||
{isCurrent ? iconFilled : icon}
|
||||
{typeof count === 'number' && count > 0 && (
|
||||
{typeof count === 'string' && count && (
|
||||
<Text type="button" style={styles.navItemCount}>
|
||||
{count}
|
||||
</Text>
|
||||
|
@ -162,9 +162,7 @@ export const DesktopLeftNav = observer(function DesktopLeftNav() {
|
|||
/>
|
||||
<NavItem
|
||||
href="/notifications"
|
||||
count={
|
||||
store.me.notifications.unreadCount + store.invitedUsers.numNotifs
|
||||
}
|
||||
count={store.me.notifications.unreadCountLabel}
|
||||
icon={<BellIcon strokeWidth={2} size={24} style={pal.text} />}
|
||||
iconFilled={
|
||||
<BellIconSolid strokeWidth={1.5} size={24} style={pal.text} />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue