From 464ba842029b628d2bb8590440e7a3ed68c909bf Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Fri, 27 Feb 2026 13:38:20 -0600 Subject: [PATCH] feat: clear trail line when clearing callsign tracking - Push clear_trail_line event when user clears tracking - Ensures trail line is removed immediately --- lib/aprsme_web/live/map_live/index.ex | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/aprsme_web/live/map_live/index.ex b/lib/aprsme_web/live/map_live/index.ex index dc714d6..d51aab2 100644 --- a/lib/aprsme_web/live/map_live/index.ex +++ b/lib/aprsme_web/live/map_live/index.ex @@ -510,6 +510,7 @@ defmodule AprsmeWeb.MapLive.Index do socket = socket |> assign(tracked_callsign: "", overlay_callsign: "", other_ssids: []) + |> push_event("clear_trail_line", %{}) |> update_url_with_current_state() {:noreply, socket} @@ -1089,8 +1090,15 @@ defmodule AprsmeWeb.MapLive.Index do defp update_display_for_batch(socket, []), do: socket defp update_display_for_batch(socket, marker_data_list) do + tracked_callsign = socket.assigns.tracked_callsign || "" + if socket.assigns.map_zoom <= 8 do - DisplayManager.send_heat_map_for_current_bounds(socket) + # If tracking a callsign, send trail line instead of heat map + if tracked_callsign == "" do + DisplayManager.send_heat_map_for_current_bounds(socket) + else + DisplayManager.send_trail_line_for_tracked_callsign(socket) + end else send_marker_batch(socket, marker_data_list) end @@ -1987,6 +1995,15 @@ defmodule AprsmeWeb.MapLive.Index do socket = HistoricalLoader.start_progressive_historical_loading(socket) + # If tracking a callsign and at low zoom, send trail line instead of letting + # historical loader send heat map + socket = + if socket.assigns.tracked_callsign != "" and socket.assigns.map_zoom <= 8 do + DisplayManager.send_trail_line_for_tracked_callsign(socket) + else + socket + end + # Mark initial historical as completed if this was the initial load if is_initial_load do assign(socket, initial_historical_completed: true)