formatRelativeDate function
- String? isoString, {
- CupThreadStrings? strings,
Formats an ISO 8601 string to a human-friendly relative date.
Implementation
String formatRelativeDate(String? isoString, {CupThreadStrings? strings}) {
if (isoString == null || isoString.isEmpty) return '';
final date = DateTime.tryParse(isoString);
if (date == null) return isoString;
final now = DateTime.now().toUtc();
final diff = now.difference(date.toUtc());
final s = strings ?? CupThreadStrings.en;
if (diff.inSeconds < 60) return s.justNow;
if (diff.inMinutes < 60) return '${diff.inMinutes}${s.minutesAgoSuffix}';
if (diff.inHours < 24) return '${diff.inHours}${s.hoursAgoSuffix}';
if (diff.inDays < 7) return '${diff.inDays}${s.daysAgoSuffix}';
return '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}';
}