From 9c9970f680dea3bd8995e6d850b1c357a1ea28a7 Mon Sep 17 00:00:00 2001 From: DS Boyce <260543580+ds-boyce@users.noreply.github.com> Date: Thu, 12 Mar 2026 11:21:57 -0700 Subject: [PATCH] Don't show chat notification if viewer is age gated (#10042) --- src/ageAssurance/index.tsx | 6 ++++-- src/view/shell/bottom-bar/BottomBar.tsx | 10 +++++++--- src/view/shell/bottom-bar/BottomBarWeb.tsx | 12 ++++++++++-- src/view/shell/desktop/LeftNav.tsx | 10 ++++++---- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/ageAssurance/index.tsx b/src/ageAssurance/index.tsx index 68654b384b..9bffce7feb 100644 --- a/src/ageAssurance/index.tsx +++ b/src/ageAssurance/index.tsx @@ -2,8 +2,10 @@ import {createContext, useCallback, useContext, useEffect, useMemo} from 'react' import {useGetAndRegisterPushToken} from '#/lib/notifications/notifications' import {Provider as RedirectOverlayProvider} from '#/ageAssurance/components/RedirectOverlay' -import {AgeAssuranceDataProvider} from '#/ageAssurance/data' -import {useAgeAssuranceDataContext} from '#/ageAssurance/data' +import { + AgeAssuranceDataProvider, + useAgeAssuranceDataContext, +} from '#/ageAssurance/data' import {logger} from '#/ageAssurance/logger' import { useAgeAssuranceState, diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 3e4aa43acf..a1386c644c 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -49,6 +49,7 @@ import { Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, } from '#/components/icons/Message' import {Text} from '#/components/Typography' +import {useAgeAssurance} from '#/ageAssurance' import {useActorStatus} from '#/features/liveNow' import {useDemoMode} from '#/storage/hooks/demo-mode' import {styles} from './BottomBarStyles' @@ -65,6 +66,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { useNavigationTabState() const numUnreadNotifications = useUnreadNotifications() const numUnreadMessages = useUnreadMessageCount() + const aa = useAgeAssurance() const footerMinimalShellTransform = useMinimalShellFooterTransform() const {data: profile} = useProfileQuery({did: currentAccount?.did}) const {requestSwitchToAccount} = useLoggedOutViewControls() @@ -213,13 +215,15 @@ export function BottomBar({navigation}: BottomTabBarProps) { ) } onPress={onPressMessages} - notificationCount={numUnreadMessages.numUnread} - hasNew={numUnreadMessages.hasNew} + notificationCount={ + aa.flags.chatDisabled ? undefined : numUnreadMessages.numUnread + } + hasNew={aa.flags.chatDisabled ? false : numUnreadMessages.hasNew} accessible={true} accessibilityRole="tab" accessibilityLabel={_(msg`Chat`)} accessibilityHint={ - numUnreadMessages.count > 0 + !aa.flags.chatDisabled && numUnreadMessages.count > 0 ? _( plural(numUnreadMessages.numUnread ?? 0, { one: '# unread item', diff --git a/src/view/shell/bottom-bar/BottomBarWeb.tsx b/src/view/shell/bottom-bar/BottomBarWeb.tsx index ea43399db3..e0d1edd66a 100644 --- a/src/view/shell/bottom-bar/BottomBarWeb.tsx +++ b/src/view/shell/bottom-bar/BottomBarWeb.tsx @@ -43,6 +43,7 @@ import { Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, } from '#/components/icons/Message' import {Text} from '#/components/Typography' +import {useAgeAssurance} from '#/ageAssurance' import {styles} from './BottomBarStyles' export function BottomBarWeb() { @@ -60,6 +61,7 @@ export function BottomBarWeb() { const unreadMessageCount = useUnreadMessageCount() const notificationCountStr = useUnreadNotifications() + const aa = useAgeAssurance() const showSignIn = useCallback(() => { closeAllActiveElements() @@ -124,8 +126,14 @@ export function BottomBarWeb() { + notificationCount={ + aa.flags.chatDisabled + ? undefined + : unreadMessageCount.numUnread + } + hasNew={ + aa.flags.chatDisabled ? false : unreadMessageCount.hasNew + }> {({isActive}) => { const Icon = isActive ? MessageFilled : Message return ( diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index a35f3ec1c0..e3933bc13c 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -74,6 +74,7 @@ import {CENTER_COLUMN_OFFSET} from '#/components/Layout' import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' import {Text} from '#/components/Typography' +import {useAgeAssurance} from '#/ageAssurance' import {useActorStatus} from '#/features/liveNow' import {PlatformInfo} from '../../../../modules/expo-bluesky-swiss-army' import {router} from '../../../routes' @@ -349,7 +350,7 @@ function SwitchMenuItem({ '@', )}`, )} - onPress={() => onPressSwitchAccount(account, 'SwitchAccount')}> + onPress={() => void onPressSwitchAccount(account, 'SwitchAccount')}> void onPressCompose()} size="large" variant="solid" color="primary" @@ -590,12 +591,13 @@ function ChatNavItem() { const pal = usePalette('default') const {_} = useLingui() const numUnreadMessages = useUnreadMessageCount() + const aa = useAgeAssurance() return ( }