diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart index e1c3d3f3..4930ee08 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/pages/staff_profile_page.dart @@ -105,15 +105,15 @@ class StaffProfilePage extends StatelessWidget { child: Column( children: [ ReliabilityStatsCard( - totalShifts: profile.totalShifts ?? 0, - averageRating: profile.averageRating ?? 0.0, - onTimeRate: profile.onTimeRate ?? 0, - noShowCount: profile.noShowCount ?? 0, - cancellationCount: profile.cancellationCount ?? 0, + totalShifts: profile.totalShifts, + averageRating: profile.averageRating, + onTimeRate: profile.onTimeRate, + noShowCount: profile.noShowCount, + cancellationCount: profile.cancellationCount, ), const SizedBox(height: UiConstants.space6), ReliabilityScoreBar( - reliabilityScore: profile.reliabilityScore ?? 100, + reliabilityScore: profile.reliabilityScore, ), const SizedBox(height: UiConstants.space6), SectionTitle(i18n.sections.onboarding), diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart index ec32de87..4fa8838b 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_score_bar.dart @@ -6,17 +6,17 @@ import 'package:design_system/design_system.dart'; /// /// Uses design system tokens for all colors, typography, and spacing. class ReliabilityScoreBar extends StatelessWidget { - final int reliabilityScore; + final int? reliabilityScore; const ReliabilityScoreBar({ super.key, - required this.reliabilityScore, + this.reliabilityScore, }); @override Widget build(BuildContext context) { final i18n = t.staff.profile.reliability_score; - final score = reliabilityScore / 100; + final score = (reliabilityScore ?? 0) / 100; return Container( padding: EdgeInsets.all(UiConstants.space4), @@ -37,7 +37,7 @@ class ReliabilityScoreBar extends StatelessWidget { ), ), Text( - "$reliabilityScore%", + "${reliabilityScore ?? 0}%", style: UiTypography.headline4m.copyWith( color: UiColors.primary, ), diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart index be30bc22..05594a60 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/widgets/reliability_stats_card.dart @@ -6,19 +6,19 @@ import 'package:design_system/design_system.dart'; /// /// Uses design system tokens for all colors, typography, spacing, and icons. class ReliabilityStatsCard extends StatelessWidget { - final int totalShifts; - final double averageRating; - final int onTimeRate; - final int noShowCount; - final int cancellationCount; + final int? totalShifts; + final double? averageRating; + final int? onTimeRate; + final int? noShowCount; + final int? cancellationCount; const ReliabilityStatsCard({ super.key, - required this.totalShifts, - required this.averageRating, - required this.onTimeRate, - required this.noShowCount, - required this.cancellationCount, + this.totalShifts, + this.averageRating, + this.onTimeRate, + this.noShowCount, + this.cancellationCount, }); @override @@ -43,31 +43,31 @@ class ReliabilityStatsCard extends StatelessWidget { _buildStatItem( context, LucideIcons.briefcase, - "$totalShifts", + "${totalShifts ?? 0}", "Shifts", ), _buildStatItem( context, LucideIcons.star, - averageRating.toStringAsFixed(1), + (averageRating ?? 0.0).toStringAsFixed(1), "Rating", ), _buildStatItem( context, LucideIcons.clock, - "$onTimeRate%", + "${onTimeRate ?? 0}%", "On Time", ), _buildStatItem( context, LucideIcons.xCircle, - "$noShowCount", + "${noShowCount ?? 0}", "No Shows", ), _buildStatItem( context, LucideIcons.ban, - "$cancellationCount", + "${cancellationCount ?? 0}", "Cancel.", ), ],