import 'package:flutter/material.dart'; class DayHeader extends StatelessWidget { const DayHeader({ super.key, required this.date, required this.totalDuration, }); final DateTime date; final Duration totalDuration; @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; return Padding( padding: const EdgeInsets.fromLTRB(16, 16, 16, 4), child: Row( children: [ Text( _label(date), style: Theme.of(context).textTheme.labelLarge?.copyWith( color: colorScheme.primary, fontWeight: FontWeight.bold, ), ), const Spacer(), Text( _fmt(totalDuration), style: Theme.of(context).textTheme.labelMedium?.copyWith( color: colorScheme.onSurfaceVariant, ), ), ], ), ); } String _label(DateTime d) { final now = DateTime.now(); final today = DateTime(now.year, now.month, now.day); final yesterday = today.subtract(const Duration(days: 1)); final target = DateTime(d.year, d.month, d.day); if (target == today) return 'Today'; if (target == yesterday) return 'Yesterday'; const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; return '${weekdays[d.weekday - 1]}, ${d.day} ${months[d.month - 1]}'; } String _fmt(Duration d) { final h = d.inHours; final m = d.inMinutes % 60; if (h > 0) return '${h}h ${m}m'; return '${m}m'; } }