diff --git a/lib/screens/programmer_tasks/monitor/help_panel.dart b/lib/screens/programmer_tasks/monitor/help_panel.dart index 737a1ee6..ee887d0a 100644 --- a/lib/screens/programmer_tasks/monitor/help_panel.dart +++ b/lib/screens/programmer_tasks/monitor/help_panel.dart @@ -16,7 +16,9 @@ final _dateFmt = DateFormat('EEE, MMM d'); /// displayed day is independent of the parent; the family provider is /// re-watched whenever the day changes. class HelpPanel extends ConsumerStatefulWidget { - const HelpPanel({super.key}); + const HelpPanel({super.key, this.profileNames = const {}}); + + final Map profileNames; @override ConsumerState createState() => _HelpPanelState(); @@ -125,8 +127,9 @@ class _HelpPanelState extends ConsumerState { separatorBuilder: (_, _) => const Divider(height: 1), itemBuilder: (context, i) { final e = edges[i]; - final helperName = e.helperId; - final assigneeName = e.assigneeId; + final names = widget.profileNames; + final helperName = names[e.helperId] ?? e.helperId; + final assigneeName = names[e.assigneeId] ?? e.assigneeId; final timeStr = TimeOfDay.fromDateTime(e.at).format(context); return Padding( padding: const EdgeInsets.symmetric(vertical: 6), diff --git a/lib/screens/programmer_tasks/monitor/monitor_tab.dart b/lib/screens/programmer_tasks/monitor/monitor_tab.dart index 18f117a9..cd440574 100644 --- a/lib/screens/programmer_tasks/monitor/monitor_tab.dart +++ b/lib/screens/programmer_tasks/monitor/monitor_tab.dart @@ -112,6 +112,7 @@ class MonitorTab extends ConsumerWidget { final grid = _ProgrammerGrid( entries: entries, + profileNames: profileNames, width: sideBySide ? width - 320 : width, ); @@ -123,7 +124,7 @@ class MonitorTab extends ConsumerWidget { const SizedBox(width: 12), SizedBox( width: 300, - child: const HelpPanel(), + child: HelpPanel(profileNames: profileNames), ), ], ) @@ -133,7 +134,7 @@ class MonitorTab extends ConsumerWidget { const SizedBox(height: 16), SizedBox( height: 340, - child: const HelpPanel(), + child: HelpPanel(profileNames: profileNames), ), ], ); @@ -161,10 +162,12 @@ class MonitorTab extends ConsumerWidget { class _ProgrammerGrid extends StatelessWidget { const _ProgrammerGrid({ required this.entries, + required this.profileNames, required this.width, }); final List entries; + final Map profileNames; final double width; @override @@ -198,6 +201,7 @@ class _ProgrammerGrid extends StatelessWidget { final entry = entries[i]; return ProgrammerMonitorCard( entry: entry, + profileNames: profileNames, onTap: () => context.go('/programmer-tasks/programmers/${entry.programmer.id}'), ); diff --git a/lib/screens/programmer_tasks/monitor/programmer_monitor_card.dart b/lib/screens/programmer_tasks/monitor/programmer_monitor_card.dart index 9fbf6123..e93807b7 100644 --- a/lib/screens/programmer_tasks/monitor/programmer_monitor_card.dart +++ b/lib/screens/programmer_tasks/monitor/programmer_monitor_card.dart @@ -41,10 +41,12 @@ class ProgrammerMonitorCard extends StatelessWidget { super.key, required this.entry, required this.onTap, + this.profileNames = const {}, }); final ProgrammerMonitorEntry entry; final VoidCallback onTap; + final Map profileNames; @override Widget build(BuildContext context) { @@ -155,7 +157,7 @@ class ProgrammerMonitorCard extends StatelessWidget { for (final e in entry.helped) _HelpRow( prefix: 'Helped →', - name: e.assigneeId, + name: profileNames[e.assigneeId] ?? e.assigneeId, task: e.taskTitle, minutes: e.minutes, cs: cs, @@ -164,7 +166,7 @@ class ProgrammerMonitorCard extends StatelessWidget { for (final e in entry.helpedBy) _HelpRow( prefix: 'Helped by ←', - name: e.helperId, + name: profileNames[e.helperId] ?? e.helperId, task: e.taskTitle, minutes: e.minutes, cs: cs,