From be58c556c00f32cd9e55d9d655df658c10c4b1f0 Mon Sep 17 00:00:00 2001 From: micko samawa Date: Mon, 29 Jun 2026 09:40:18 +0700 Subject: [PATCH] fix(mobile): format waktu proses laundry - 72 jam menjadi 3 hari, 10 jam tetap 10 jam --- spk_mobile/lib/models/laundry.dart | 21 ++++++++++++++++++- .../lib/screens/laundry_detail_screen.dart | 4 ++-- spk_mobile/lib/widgets/laundry_card.dart | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/spk_mobile/lib/models/laundry.dart b/spk_mobile/lib/models/laundry.dart index aeeff48..40220b5 100644 --- a/spk_mobile/lib/models/laundry.dart +++ b/spk_mobile/lib/models/laundry.dart @@ -291,7 +291,26 @@ class Laundry { double get jarak => jarakKampus; // alias for jarak field double get rating => avgRating ?? 0.0; - String get estimasiSelesai => '$waktuProses jam'; + // Format jam secara umum menjadi format ramah pengguna (contoh: "3 hari", "10 jam") + static String formatJam(int jam) { + if (jam >= 24) { + final hari = jam ~/ 24; + final sisaJam = jam % 24; + if (sisaJam == 0) { + return '$hari hari'; + } else { + return '$hari hari $sisaJam jam'; + } + } + return '$jam jam'; + } + + // Format waktu proses sesuai jenis layanan + String formattedWaktuProsesFor(String? jenisLayanan) { + return formatJam(waktuProsesFor(jenisLayanan)); + } + + String get estimasiSelesai => formatJam(waktuProses); // Check if currently open bool get isOpen { diff --git a/spk_mobile/lib/screens/laundry_detail_screen.dart b/spk_mobile/lib/screens/laundry_detail_screen.dart index ec43c10..c127a8c 100644 --- a/spk_mobile/lib/screens/laundry_detail_screen.dart +++ b/spk_mobile/lib/screens/laundry_detail_screen.dart @@ -295,7 +295,7 @@ class _LaundryDetailScreenState extends State { ), _buildHeaderChip( icon: Icons.schedule_rounded, - label: '${widget.laundry.waktuProsesFor(widget.selectedJenisLayanan)} jam', + label: widget.laundry.formattedWaktuProsesFor(widget.selectedJenisLayanan), ), ], ), @@ -347,7 +347,7 @@ class _LaundryDetailScreenState extends State { _buildInfoRow( Icons.schedule, 'Kecepatan Layanan', - '${widget.laundry.waktuProsesFor(widget.selectedJenisLayanan)} jam', + widget.laundry.formattedWaktuProsesFor(widget.selectedJenisLayanan), ), ], ), diff --git a/spk_mobile/lib/widgets/laundry_card.dart b/spk_mobile/lib/widgets/laundry_card.dart index 8f28ff3..a5247e3 100644 --- a/spk_mobile/lib/widgets/laundry_card.dart +++ b/spk_mobile/lib/widgets/laundry_card.dart @@ -236,7 +236,7 @@ class LaundryCard extends StatelessWidget { ), const SizedBox(width: 4), Text( - '${laundry.waktuProsesFor(selectedJenisLayanan)}h', + laundry.formattedWaktuProsesFor(selectedJenisLayanan), style: const TextStyle( fontSize: 12, fontWeight: FontWeight.bold,