diff options
author | Samuel Newman <mozzius@protonmail.com> | 2023-11-30 17:09:10 +0000 |
---|---|---|
committer | Samuel Newman <mozzius@protonmail.com> | 2023-11-30 17:09:10 +0000 |
commit | c06611fb71c3a0fdce54e2889bf2caaf7460143c (patch) | |
tree | fee9b411ea3439a89b2c09a71afce1389eb211ec /src/view/shell/Drawer.tsx | |
parent | 60886b76c8baded58d84c111f2d92db49514f940 (diff) | |
download | voidsky-c06611fb71c3a0fdce54e2889bf2caaf7460143c.tar.zst |
show informative message when token scope is wrong
Diffstat (limited to 'src/view/shell/Drawer.tsx')
-rw-r--r-- | src/view/shell/Drawer.tsx | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 9df9b70b3..ee6c980b8 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -42,7 +42,7 @@ import {NavigationProp} from 'lib/routes/types' import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' import {isWeb} from 'platform/detection' import {formatCount, formatCountShortOnly} from 'view/com/util/numeric/format' -import {Trans, msg} from '@lingui/macro' +import {Plural, Trans, msg, plural} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useSetDrawerOpen} from '#/state/shell' import {useModalControls} from '#/state/modals' @@ -486,23 +486,28 @@ function InviteCodes({style}: {style?: StyleProp<ViewStyle>}) { const {data: invites} = useInviteCodesQuery() const invitesAvailable = invites?.available?.length ?? 0 const {openModal} = useModalControls() + const {_} = useLingui() + const onPress = React.useCallback(() => { track('Menu:ItemClicked', {url: '#invite-codes'}) setDrawerOpen(false) openModal({name: 'invite-codes'}) }, [openModal, track, setDrawerOpen]) + return ( <TouchableOpacity testID="menuItemInviteCodes" style={[styles.inviteCodes, style]} onPress={onPress} accessibilityRole="button" - accessibilityLabel={ - invitesAvailable === 1 - ? 'Invite codes: 1 available' - : `Invite codes: ${invitesAvailable} available` - } - accessibilityHint="Opens list of invite codes"> + accessibilityLabel={_( + plural(invitesAvailable, { + one: 'Invite codes: # available', + other: 'Invite codes: # available', + }), + )} + accessibilityHint={_(msg`Opens list of invite codes`)} + disabled={invites?.disabled}> <FontAwesomeIcon icon="ticket" style={[ @@ -514,8 +519,17 @@ function InviteCodes({style}: {style?: StyleProp<ViewStyle>}) { <Text type="lg-medium" style={invitesAvailable > 0 ? pal.link : pal.textLight}> - {formatCount(invitesAvailable)} invite{' '} - {pluralize(invitesAvailable, 'code')} + {invites?.disabled ? ( + <Trans> + Your invite codes are hidden when logged in using an App Password + </Trans> + ) : ( + <Plural + value={formatCount(invitesAvailable)} + one="# invite code available" + other="# invite codes available" + /> + )} </Text> </TouchableOpacity> ) @@ -592,10 +606,11 @@ const styles = StyleSheet.create({ paddingLeft: 22, paddingVertical: 8, flexDirection: 'row', - alignItems: 'center', }, inviteCodesIcon: { marginRight: 6, + flexShrink: 0, + marginTop: 2, }, footer: { |