minor fixes

This commit is contained in:
Arseni
2026-01-21 16:59:38 +03:00
parent d14e6d0f7a
commit 32350ac571
5 changed files with 57 additions and 23 deletions

View File

@@ -45,7 +45,7 @@ class _QuoteStatusState extends State<QuoteStatus> {
final provider = context.watch<QuotationProvider>();
final timeLeft = provider.quoteTimeLeft;
final isLoading = provider.isLoading;
final statusType = provider.quoteStatusType;
final statusType = provider.quoteStatus;
final autoRefreshMode = provider.autoRefreshMode;
String statusText;

View File

@@ -1,11 +1,31 @@
import 'package:duration/duration.dart';
String formatQuoteDuration(Duration duration) {
final totalSeconds = duration.inSeconds < 0 ? 0 : duration.inSeconds;
final hours = totalSeconds ~/ 3600;
final minutes = (totalSeconds % 3600) ~/ 60;
final seconds = totalSeconds % 60;
final clampedDuration = duration.isNegative ? Duration.zero : duration;
final pretty = prettyDuration(
clampedDuration,
tersity: DurationTersity.second,
upperTersity: DurationTersity.hour,
abbreviated: true,
delimiter: ':',
spacer: '',
);
final units = _extractHms(pretty);
final hours = units['h'] ?? 0;
final minutes = units['m'] ?? 0;
final seconds = units['s'] ?? 0;
if (hours > 0) {
return '${hours.toString()}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}';
}
return '${minutes.toString()}:${seconds.toString().padLeft(2, '0')}';
}
Map<String, int> _extractHms(String pretty) {
final matches = RegExp(r'(\d+)([hms])').allMatches(pretty);
final units = <String, int>{};
for (final match in matches) {
units[match.group(2)!] = int.parse(match.group(1)!);
}
return units;
}

View File

@@ -69,6 +69,7 @@ dependencies:
flutter_multi_formatter: ^2.13.7
dotted_border: ^3.1.0
qr_flutter: ^4.1.0
duration: ^4.0.3