From 956330958f315a25cd9b805dff96933316df00b8 Mon Sep 17 00:00:00 2001 From: Yaros Date: Tue, 8 Sep 2026 19:25:56 +0200 Subject: [PATCH] fix(mobile): hide negative age (#31341) --- .../asset_viewer/asset_details/people_details.widget.dart | 6 ++++-- mobile/lib/utils/people.utils.dart | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_details/people_details.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_details/people_details.widget.dart index 18838dede..34ec67cc7 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_details/people_details.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_details/people_details.widget.dart @@ -106,6 +106,8 @@ class _Avatar extends StatelessWidget { @override Widget build(BuildContext context) { + final birthDate = person.birthDate; + final formattedAge = birthDate != null ? formatAge(birthDate, assetFileCreatedAt) : null; return ConstrainedBox( constraints: const BoxConstraints(maxWidth: 96), child: Padding( @@ -153,11 +155,11 @@ class _Avatar extends StatelessWidget { style: context.textTheme.labelLarge, maxLines: 1, ), - if (person.birthDate != null) + if (formattedAge != null) FittedBox( fit: BoxFit.scaleDown, child: Text( - formatAge(person.birthDate!, assetFileCreatedAt), + formattedAge, textAlign: TextAlign.center, style: context.textTheme.bodyMedium?.copyWith( color: context.textTheme.bodyMedium?.color?.withAlpha(175), diff --git a/mobile/lib/utils/people.utils.dart b/mobile/lib/utils/people.utils.dart index 36c3aa8cb..ec943bc5d 100644 --- a/mobile/lib/utils/people.utils.dart +++ b/mobile/lib/utils/people.utils.dart @@ -4,10 +4,14 @@ import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_mobile/presentation/widgets/people/person_edit_birthday_modal.widget.dart'; import 'package:immich_mobile/presentation/widgets/people/person_edit_name_modal.widget.dart'; -String formatAge(DateTime birthDate, DateTime referenceDate) { +String? formatAge(DateTime birthDate, DateTime referenceDate) { final int ageInYears = _calculateAge(birthDate, referenceDate); final int ageInMonths = _calculateAgeInMonths(birthDate, referenceDate); + if (ageInYears < 0) { + return null; + } + final t = StaticTranslations.instance; if (ageInMonths <= 11) { return t.person_age_months(months: ageInMonths);