Don't show chat notification if viewer is age gated (#10042)
This commit is contained in:
@@ -2,8 +2,10 @@ import {createContext, useCallback, useContext, useEffect, useMemo} from 'react'
|
|||||||
|
|
||||||
import {useGetAndRegisterPushToken} from '#/lib/notifications/notifications'
|
import {useGetAndRegisterPushToken} from '#/lib/notifications/notifications'
|
||||||
import {Provider as RedirectOverlayProvider} from '#/ageAssurance/components/RedirectOverlay'
|
import {Provider as RedirectOverlayProvider} from '#/ageAssurance/components/RedirectOverlay'
|
||||||
import {AgeAssuranceDataProvider} from '#/ageAssurance/data'
|
import {
|
||||||
import {useAgeAssuranceDataContext} from '#/ageAssurance/data'
|
AgeAssuranceDataProvider,
|
||||||
|
useAgeAssuranceDataContext,
|
||||||
|
} from '#/ageAssurance/data'
|
||||||
import {logger} from '#/ageAssurance/logger'
|
import {logger} from '#/ageAssurance/logger'
|
||||||
import {
|
import {
|
||||||
useAgeAssuranceState,
|
useAgeAssuranceState,
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ import {
|
|||||||
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
||||||
} from '#/components/icons/Message'
|
} from '#/components/icons/Message'
|
||||||
import {Text} from '#/components/Typography'
|
import {Text} from '#/components/Typography'
|
||||||
|
import {useAgeAssurance} from '#/ageAssurance'
|
||||||
import {useActorStatus} from '#/features/liveNow'
|
import {useActorStatus} from '#/features/liveNow'
|
||||||
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
||||||
import {styles} from './BottomBarStyles'
|
import {styles} from './BottomBarStyles'
|
||||||
@@ -65,6 +66,7 @@ export function BottomBar({navigation}: BottomTabBarProps) {
|
|||||||
useNavigationTabState()
|
useNavigationTabState()
|
||||||
const numUnreadNotifications = useUnreadNotifications()
|
const numUnreadNotifications = useUnreadNotifications()
|
||||||
const numUnreadMessages = useUnreadMessageCount()
|
const numUnreadMessages = useUnreadMessageCount()
|
||||||
|
const aa = useAgeAssurance()
|
||||||
const footerMinimalShellTransform = useMinimalShellFooterTransform()
|
const footerMinimalShellTransform = useMinimalShellFooterTransform()
|
||||||
const {data: profile} = useProfileQuery({did: currentAccount?.did})
|
const {data: profile} = useProfileQuery({did: currentAccount?.did})
|
||||||
const {requestSwitchToAccount} = useLoggedOutViewControls()
|
const {requestSwitchToAccount} = useLoggedOutViewControls()
|
||||||
@@ -213,13 +215,15 @@ export function BottomBar({navigation}: BottomTabBarProps) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
onPress={onPressMessages}
|
onPress={onPressMessages}
|
||||||
notificationCount={numUnreadMessages.numUnread}
|
notificationCount={
|
||||||
hasNew={numUnreadMessages.hasNew}
|
aa.flags.chatDisabled ? undefined : numUnreadMessages.numUnread
|
||||||
|
}
|
||||||
|
hasNew={aa.flags.chatDisabled ? false : numUnreadMessages.hasNew}
|
||||||
accessible={true}
|
accessible={true}
|
||||||
accessibilityRole="tab"
|
accessibilityRole="tab"
|
||||||
accessibilityLabel={_(msg`Chat`)}
|
accessibilityLabel={_(msg`Chat`)}
|
||||||
accessibilityHint={
|
accessibilityHint={
|
||||||
numUnreadMessages.count > 0
|
!aa.flags.chatDisabled && numUnreadMessages.count > 0
|
||||||
? _(
|
? _(
|
||||||
plural(numUnreadMessages.numUnread ?? 0, {
|
plural(numUnreadMessages.numUnread ?? 0, {
|
||||||
one: '# unread item',
|
one: '# unread item',
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import {
|
|||||||
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
Message_Stroke2_Corner0_Rounded_Filled as MessageFilled,
|
||||||
} from '#/components/icons/Message'
|
} from '#/components/icons/Message'
|
||||||
import {Text} from '#/components/Typography'
|
import {Text} from '#/components/Typography'
|
||||||
|
import {useAgeAssurance} from '#/ageAssurance'
|
||||||
import {styles} from './BottomBarStyles'
|
import {styles} from './BottomBarStyles'
|
||||||
|
|
||||||
export function BottomBarWeb() {
|
export function BottomBarWeb() {
|
||||||
@@ -60,6 +61,7 @@ export function BottomBarWeb() {
|
|||||||
|
|
||||||
const unreadMessageCount = useUnreadMessageCount()
|
const unreadMessageCount = useUnreadMessageCount()
|
||||||
const notificationCountStr = useUnreadNotifications()
|
const notificationCountStr = useUnreadNotifications()
|
||||||
|
const aa = useAgeAssurance()
|
||||||
|
|
||||||
const showSignIn = useCallback(() => {
|
const showSignIn = useCallback(() => {
|
||||||
closeAllActiveElements()
|
closeAllActiveElements()
|
||||||
@@ -124,8 +126,14 @@ export function BottomBarWeb() {
|
|||||||
<NavItem
|
<NavItem
|
||||||
routeName="Messages"
|
routeName="Messages"
|
||||||
href="/messages"
|
href="/messages"
|
||||||
notificationCount={unreadMessageCount.numUnread}
|
notificationCount={
|
||||||
hasNew={unreadMessageCount.hasNew}>
|
aa.flags.chatDisabled
|
||||||
|
? undefined
|
||||||
|
: unreadMessageCount.numUnread
|
||||||
|
}
|
||||||
|
hasNew={
|
||||||
|
aa.flags.chatDisabled ? false : unreadMessageCount.hasNew
|
||||||
|
}>
|
||||||
{({isActive}) => {
|
{({isActive}) => {
|
||||||
const Icon = isActive ? MessageFilled : Message
|
const Icon = isActive ? MessageFilled : Message
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ import {CENTER_COLUMN_OFFSET} from '#/components/Layout'
|
|||||||
import * as Menu from '#/components/Menu'
|
import * as Menu from '#/components/Menu'
|
||||||
import * as Prompt from '#/components/Prompt'
|
import * as Prompt from '#/components/Prompt'
|
||||||
import {Text} from '#/components/Typography'
|
import {Text} from '#/components/Typography'
|
||||||
|
import {useAgeAssurance} from '#/ageAssurance'
|
||||||
import {useActorStatus} from '#/features/liveNow'
|
import {useActorStatus} from '#/features/liveNow'
|
||||||
import {PlatformInfo} from '../../../../modules/expo-bluesky-swiss-army'
|
import {PlatformInfo} from '../../../../modules/expo-bluesky-swiss-army'
|
||||||
import {router} from '../../../routes'
|
import {router} from '../../../routes'
|
||||||
@@ -349,7 +350,7 @@ function SwitchMenuItem({
|
|||||||
'@',
|
'@',
|
||||||
)}`,
|
)}`,
|
||||||
)}
|
)}
|
||||||
onPress={() => onPressSwitchAccount(account, 'SwitchAccount')}>
|
onPress={() => void onPressSwitchAccount(account, 'SwitchAccount')}>
|
||||||
<View>
|
<View>
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
avatar={profile?.avatar}
|
avatar={profile?.avatar}
|
||||||
@@ -572,7 +573,7 @@ function ComposeBtn() {
|
|||||||
<Button
|
<Button
|
||||||
disabled={isFetchingHandle}
|
disabled={isFetchingHandle}
|
||||||
label={_(msg`Compose new post`)}
|
label={_(msg`Compose new post`)}
|
||||||
onPress={onPressCompose}
|
onPress={() => void onPressCompose()}
|
||||||
size="large"
|
size="large"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="primary"
|
color="primary"
|
||||||
@@ -590,12 +591,13 @@ function ChatNavItem() {
|
|||||||
const pal = usePalette('default')
|
const pal = usePalette('default')
|
||||||
const {_} = useLingui()
|
const {_} = useLingui()
|
||||||
const numUnreadMessages = useUnreadMessageCount()
|
const numUnreadMessages = useUnreadMessageCount()
|
||||||
|
const aa = useAgeAssurance()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<NavItem
|
<NavItem
|
||||||
href="/messages"
|
href="/messages"
|
||||||
count={numUnreadMessages.numUnread}
|
count={aa.flags.chatDisabled ? undefined : numUnreadMessages.numUnread}
|
||||||
hasNew={numUnreadMessages.hasNew}
|
hasNew={aa.flags.chatDisabled ? false : numUnreadMessages.hasNew}
|
||||||
icon={
|
icon={
|
||||||
<Message style={pal.text} aria-hidden={true} width={NAV_ICON_WIDTH} />
|
<Message style={pal.text} aria-hidden={true} width={NAV_ICON_WIDTH} />
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user