From decac43c3477c5480104d16e46d97ff889f1749a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 8 Jul 2026 11:40:33 -0500 Subject: [PATCH] Adjust AA device signals copy (#11106) --- .../components/DeviceSignalsNotice.tsx | 63 +++++++++++++++++++ .../components/NoAccessScreen.tsx | 19 +----- src/ageAssurance/useVerificationFlow.ts | 2 +- .../ageAssurance/AgeAssuranceAccountCard.tsx | 19 +----- 4 files changed, 68 insertions(+), 35 deletions(-) create mode 100644 src/ageAssurance/components/DeviceSignalsNotice.tsx diff --git a/src/ageAssurance/components/DeviceSignalsNotice.tsx b/src/ageAssurance/components/DeviceSignalsNotice.tsx new file mode 100644 index 0000000000..bd2d7d2381 --- /dev/null +++ b/src/ageAssurance/components/DeviceSignalsNotice.tsx @@ -0,0 +1,63 @@ +import {Trans, useLingui} from '@lingui/react/macro' + +import {atoms as a, useTheme} from '#/alf' +import {createStaticClick, SimpleInlineLinkText} from '#/components/Link' +import {Text} from '#/components/Typography' +import {IS_IOS} from '#/env' + +/** + * Explains what sharing on-device age signals reveals, shown alongside the + * "Share age range" button on the age assurance surfaces (the no-access screen + * and the account settings card). + * + * Platform-split so the copy can name the OS account the age range comes from + * (Apple Account vs Google Account) and reassure users that only a range is + * shared. Device signals are only supported on iOS and Android, so these are + * the only two cases. + */ +export function DeviceSignalsNotice({onPressKws}: {onPressKws: () => void}) { + const t = useTheme() + const {t: l} = useLingui() + + return ( + + {IS_IOS ? ( + + Sharing your age range reveals only the range associated with your + Apple Account – for example, that you’re at least 18.{' '} + + Your exact age and birthday are never shared, + {' '} + and this data never leaves this device. Therefore, it only enables + access on this device. Alternatively,{' '} + { + onPressKws() + })}> + you can use our trusted partner, KWS + + , to complete your verification and enable access on all platforms. + + ) : ( + + Sharing your age range reveals only the range associated with your + Google Account – for example, that you’re at least 18.{' '} + + Your exact age and birthday are never shared, + {' '} + and this data never leaves this device. Therefore, it only enables + access on this device. Alternatively,{' '} + { + onPressKws() + })}> + you can use our trusted partner, KWS + + , to complete your verification and enable access on all platforms. + + )} + + ) +} diff --git a/src/ageAssurance/components/NoAccessScreen.tsx b/src/ageAssurance/components/NoAccessScreen.tsx index 29d9abc5b2..895e57d077 100644 --- a/src/ageAssurance/components/NoAccessScreen.tsx +++ b/src/ageAssurance/components/NoAccessScreen.tsx @@ -27,6 +27,7 @@ import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' import {BottomSheetOutlet} from '#/../modules/bottom-sheet' import {useAgeAssurance} from '#/ageAssurance' +import {DeviceSignalsNotice} from '#/ageAssurance/components/DeviceSignalsNotice' import {useAgeAssuranceServerDataContext} from '#/ageAssurance/data' import {useComputeAgeAssuranceRegionAccess} from '#/ageAssurance/useComputeAgeAssuranceRegionAccess' import {useAgeAssuranceVerificationFlow} from '#/ageAssurance/useVerificationFlow' @@ -428,23 +429,7 @@ function AccessSection() { {useDeviceSignals ? ( - - - Sharing your age data uses information stored on your - device, and will therefore only work on this device. - Alternatively,{' '} - { - openInitDialog() - })}> - you can use our trusted partner, KWS - - , to complete your verification and enable access on all - platforms. - - + ) : lastInitiatedAt && timeAgo && diff ? ( {useDeviceSignals ? ( - - - Sharing your age data uses information stored on your - device, and will therefore only work on this device. - Alternatively,{' '} - { - openInitDialog() - })}> - you can use our trusted partner, KWS - - , to complete your verification and enable access on all - platforms. - - + ) : lastInitiatedAt && timeAgo && diff ? (