From 7697983045b7661e527ba952a66f9e8e75ae745c Mon Sep 17 00:00:00 2001 From: lashman Date: Sat, 28 Feb 2026 01:52:56 +0200 Subject: [PATCH] Use relative timestamps everywhere instead of raw date strings --- src/ui/dashboard.rs | 14 +------------- src/ui/detail_view.rs | 6 +++--- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/ui/dashboard.rs b/src/ui/dashboard.rs index 9732134..c6a0e98 100644 --- a/src/ui/dashboard.rs +++ b/src/ui/dashboard.rs @@ -302,20 +302,8 @@ fn build_updates_summary_group(db: &Rc) -> adw::PreferencesGroup { let last_check = settings.string("last-update-check"); let last_label = if last_check.is_empty() { "Never".to_string() - } else if let Ok(ts) = chrono::NaiveDateTime::parse_from_str(last_check.as_str(), "%Y-%m-%d %H:%M:%S") { - let now = chrono::Utc::now().naive_utc(); - let elapsed = now.signed_duration_since(ts); - if elapsed.num_minutes() < 1 { - "Just now".to_string() - } else if elapsed.num_hours() < 1 { - format!("{}m ago", elapsed.num_minutes()) - } else if elapsed.num_hours() < 24 { - format!("{}h ago", elapsed.num_hours()) - } else { - format!("{}d ago", elapsed.num_days()) - } } else { - "Unknown".to_string() + widgets::relative_time(&last_check) }; let last_row = adw::ActionRow::builder() .title("Last checked") diff --git a/src/ui/detail_view.rs b/src/ui/detail_view.rs index f2a7f0f..36f7a2d 100644 --- a/src/ui/detail_view.rs +++ b/src/ui/detail_view.rs @@ -723,7 +723,7 @@ fn build_overview_tab(record: &AppImageRecord, db: &Rc) -> gtk::Box { if let Some(ref last) = stats.last_launched { let row = adw::ActionRow::builder() .title("Last launched") - .subtitle(last) + .subtitle(&widgets::relative_time(last)) .build(); usage_group.add(&row); } @@ -853,13 +853,13 @@ fn build_overview_tab(record: &AppImageRecord, db: &Rc) -> gtk::Box { let seen_row = adw::ActionRow::builder() .title("First seen") - .subtitle(&record.first_seen) + .subtitle(&widgets::relative_time(&record.first_seen)) .build(); info_group.add(&seen_row); let scanned_row = adw::ActionRow::builder() .title("Last checked") - .subtitle(&record.last_scanned) + .subtitle(&widgets::relative_time(&record.last_scanned)) .build(); info_group.add(&scanned_row);