diff --git a/lib/screens/programmer_tasks/day_sheets/approvals_tab.dart b/lib/screens/programmer_tasks/day_sheets/approvals_tab.dart index 185e6ad2..376b6643 100644 --- a/lib/screens/programmer_tasks/day_sheets/approvals_tab.dart +++ b/lib/screens/programmer_tasks/day_sheets/approvals_tab.dart @@ -269,6 +269,8 @@ class _ApprovalsTabState extends ConsumerState { profile: profileById[sheet.programmerId], showCheckbox: _filter == DaySheetStatus.pending, selected: _selected.contains(sheet.id), + totalSecs: sheet.approvedSnapshot?.totalSeconds, + taskCount: sheet.approvedSnapshot?.rows.length, onToggle: _filter == DaySheetStatus.pending ? (v) => setState(() { if (v == true) { @@ -324,6 +326,8 @@ class _SheetApprovalCard extends StatelessWidget { required this.selected, required this.onToggle, required this.onTap, + this.totalSecs, + this.taskCount, }); final ProgrammerDaySheet sheet; @@ -332,11 +336,12 @@ class _SheetApprovalCard extends StatelessWidget { final bool selected; final ValueChanged? onToggle; final VoidCallback onTap; + /// Null when no approved snapshot exists yet (pending/disapproved sheets). + final int? totalSecs; + final int? taskCount; @override Widget build(BuildContext context) { - final totalSecs = sheet.approvedSnapshot?.totalSeconds ?? 0; - final taskCount = sheet.approvedSnapshot?.rows.length ?? 0; final roundNum = sheet.resubmissions + 1; return Card( @@ -369,9 +374,13 @@ class _SheetApprovalCard extends StatelessWidget { runSpacing: 4, children: [ TechChip( - formatDurationHm(Duration(seconds: totalSecs)), + totalSecs != null + ? formatDurationHm(Duration(seconds: totalSecs!)) + : '—', + ), + TechChip( + taskCount != null ? '$taskCount tasks' : '—', ), - TechChip('$taskCount tasks'), if (sheet.autoSubmitted) const TechChip('Auto', status: StatusKind.info) else diff --git a/lib/screens/programmer_tasks/programmer_tasks_tabs.dart b/lib/screens/programmer_tasks/programmer_tasks_tabs.dart index 13f6c74a..fb9d8f4b 100644 --- a/lib/screens/programmer_tasks/programmer_tasks_tabs.dart +++ b/lib/screens/programmer_tasks/programmer_tasks_tabs.dart @@ -42,6 +42,7 @@ ProgrammerTasksTab? parseProgrammerTasksTab(String? q) { case 'all': return ProgrammerTasksTab.all; case 'day-sheets': + case 'daySheets': return ProgrammerTasksTab.daySheets; default: return null;