From 24840c48d4f383276b876d83a938140c25c9d602 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Tue, 31 Mar 2026 09:12:32 -0500 Subject: [PATCH] Show 'Latest data: date time (Xm ago)' in map badge --- lib/microwaveprop_web/live/map_live.ex | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/microwaveprop_web/live/map_live.ex b/lib/microwaveprop_web/live/map_live.ex index 41513d19..5143ffc1 100644 --- a/lib/microwaveprop_web/live/map_live.ex +++ b/lib/microwaveprop_web/live/map_live.ex @@ -66,6 +66,17 @@ defmodule MicrowavepropWeb.MapLive do {:noreply, socket} end + defp time_ago(dt) do + seconds = DateTime.diff(DateTime.utc_now(), dt) + + cond do + seconds < 60 -> "just now" + seconds < 3600 -> "#{div(seconds, 60)}m ago" + seconds < 86_400 -> "#{div(seconds, 3600)}h ago" + true -> "#{div(seconds, 86_400)}d ago" + end + end + defp selected_label(bands, selected_band) do case Enum.find(bands, &(&1.freq_mhz == selected_band)) do nil -> "Select Band" @@ -118,7 +129,7 @@ defmodule MicrowavepropWeb.MapLive do
- {Calendar.strftime(@valid_time, "%H:%M UTC")} + Latest data: {Calendar.strftime(@valid_time, "%b %d, %H:%M UTC")} ({time_ago(@valid_time)})