From be4fbbff4625159eae13917cff8c07238d5e16a5 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 9 Dec 2025 15:33:03 -0600 Subject: [PATCH] Update usage --- src/ageAssurance/data.tsx | 20 ++++++++++++-------- src/ageAssurance/util.ts | 9 +++++++++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/ageAssurance/data.tsx b/src/ageAssurance/data.tsx index 0dad135cc0..e06e291052 100644 --- a/src/ageAssurance/data.tsx +++ b/src/ageAssurance/data.tsx @@ -22,7 +22,10 @@ import { import {useAgent, useSession} from '#/state/session' import * as debug from '#/ageAssurance/debug' import {logger} from '#/ageAssurance/logger' -import {isLegacyBirthdateBug} from '#/ageAssurance/util' +import { + getBirthdateStringFromAge, + isLegacyBirthdateBug, +} from '#/ageAssurance/util' import {IS_DEV} from '#/env' import {device} from '#/storage' @@ -327,15 +330,16 @@ export async function getOtherRequiredData({ /** * If we can't read a birthdate, it may be due to the user accessing the - * account via an app password. In that case, fall-back to - * `isDeclaredOverAgeMinimum` and other flags. + * account via an app password. In that case, fall-back to declared age + * flags. */ if (!data.birthdate) { - if (prefs.isDeclaredOverAgeMinimum) { - const approx = new Date() - approx.setFullYear(approx.getFullYear() - 13) - approx.setDate(approx.getDate() - 1) // ensure we're past - data.birthdate = approx.toISOString() + if (prefs.declaredAge?.isOverAge18) { + data.birthdate = getBirthdateStringFromAge(18) + } else if (prefs.declaredAge?.isOverAge16) { + data.birthdate = getBirthdateStringFromAge(16) + } else if (prefs.declaredAge?.isOverAge13) { + data.birthdate = getBirthdateStringFromAge(13) } } diff --git a/src/ageAssurance/util.ts b/src/ageAssurance/util.ts index 1043283305..51213d67c4 100644 --- a/src/ageAssurance/util.ts +++ b/src/ageAssurance/util.ts @@ -86,3 +86,12 @@ export function isUserUnderMinimumAge(birthDate: string) { export function isUserUnderAdultAge(birthDate: string) { return getAge(new Date(birthDate)) < 18 } + +export function getBirthdateStringFromAge(age: number) { + const today = new Date() + return new Date( + today.getFullYear() - age, + today.getMonth(), + today.getDate() - 1, // set to day before to ensure age is reached + ).toISOString() +}