From 3e458fb76a9644751dc6e04c65cb003b5e9be0c6 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 25 Apr 2026 09:49:06 -0500 Subject: [PATCH] feat(nav): add EME menu item to map + weather sidebars The top navbar in the root layout already linked to /eme, but the in-page side sidebars on /map and /weather (mobile + desktop) skipped straight from Path Calculator to Beacons. Adds the EME entry between them in all four panels so the Earth-Moon-Earth calculator is reachable without bouncing through the navbar. Also demotes the LiveStashGuard "stash skipped" warning to debug. It's the known OTP 28 / LiveStash 0.2.0 ArgumentError that fires on every event triggering a stash; the guard already handles it, the noise was adding nothing. --- lib/microwaveprop_web/live/live_stash_guard.ex | 5 ++++- lib/microwaveprop_web/live/map_live.ex | 6 ++++++ lib/microwaveprop_web/live/weather_map_live.ex | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/microwaveprop_web/live/live_stash_guard.ex b/lib/microwaveprop_web/live/live_stash_guard.ex index e9c053a3..8231088a 100644 --- a/lib/microwaveprop_web/live/live_stash_guard.ex +++ b/lib/microwaveprop_web/live/live_stash_guard.ex @@ -28,7 +28,10 @@ defmodule MicrowavepropWeb.LiveStashGuard do LiveStash.stash(socket) rescue e in ArgumentError -> - Logger.warning("LiveStashGuard: stash skipped (#{Exception.message(e)})") + # Expected on OTP 28 with LiveStash 0.2.0 — fires on every event + # that triggers a stash. Log at debug so the cause stays + # observable without flooding prod logs. + Logger.debug("LiveStashGuard: stash skipped (#{Exception.message(e)})") socket end end diff --git a/lib/microwaveprop_web/live/map_live.ex b/lib/microwaveprop_web/live/map_live.ex index 5ea59b00..278a7196 100644 --- a/lib/microwaveprop_web/live/map_live.ex +++ b/lib/microwaveprop_web/live/map_live.ex @@ -1023,6 +1023,9 @@ defmodule MicrowavepropWeb.MapLive do <.link navigate="/path" class="btn btn-xs btn-ghost justify-start"> Path Calculator + <.link navigate="/eme" class="btn btn-xs btn-ghost justify-start"> + EME + <.link navigate="/beacons" class="btn btn-xs btn-ghost justify-start"> Beacons @@ -1165,6 +1168,9 @@ defmodule MicrowavepropWeb.MapLive do
  • <.link navigate="/path">Path Calculator
  • +
  • + <.link navigate="/eme">EME +
  • <.link navigate="/beacons">Beacons
  • diff --git a/lib/microwaveprop_web/live/weather_map_live.ex b/lib/microwaveprop_web/live/weather_map_live.ex index c3b7206c..69414635 100644 --- a/lib/microwaveprop_web/live/weather_map_live.ex +++ b/lib/microwaveprop_web/live/weather_map_live.ex @@ -521,6 +521,9 @@ defmodule MicrowavepropWeb.WeatherMapLive do <.link navigate="/path" class="btn btn-xs btn-ghost justify-start"> Path Calculator + <.link navigate="/eme" class="btn btn-xs btn-ghost justify-start"> + EME + <.link navigate="/beacons" class="btn btn-xs btn-ghost justify-start"> Beacons @@ -671,6 +674,9 @@ defmodule MicrowavepropWeb.WeatherMapLive do
  • <.link navigate="/path">Path Calculator
  • +
  • + <.link navigate="/eme">EME +
  • <.link navigate="/beacons">Beacons