Default forecast timeline selection to closest hour to now
This commit is contained in:
parent
2b1fd6129d
commit
6dff6372ab
1 changed files with 10 additions and 4 deletions
|
|
@ -20,8 +20,7 @@ defmodule MicrowavepropWeb.MapLive do
|
||||||
def mount(_params, _session, socket) do
|
def mount(_params, _session, socket) do
|
||||||
bands = BandConfig.all_bands()
|
bands = BandConfig.all_bands()
|
||||||
valid_times = Propagation.available_valid_times(@default_band)
|
valid_times = Propagation.available_valid_times(@default_band)
|
||||||
# Default to the earliest (current analysis) hour
|
selected_time = closest_to_now(valid_times)
|
||||||
selected_time = List.first(valid_times)
|
|
||||||
initial_scores = Propagation.scores_at(@default_band, selected_time, @initial_bounds)
|
initial_scores = Propagation.scores_at(@default_band, selected_time, @initial_bounds)
|
||||||
|
|
||||||
if connected?(socket) do
|
if connected?(socket) do
|
||||||
|
|
@ -46,7 +45,7 @@ defmodule MicrowavepropWeb.MapLive do
|
||||||
def handle_event("select_band", %{"value" => band}, socket) do
|
def handle_event("select_band", %{"value" => band}, socket) do
|
||||||
band = if is_binary(band), do: String.to_integer(band), else: band
|
band = if is_binary(band), do: String.to_integer(band), else: band
|
||||||
valid_times = Propagation.available_valid_times(band)
|
valid_times = Propagation.available_valid_times(band)
|
||||||
selected_time = List.first(valid_times)
|
selected_time = closest_to_now(valid_times)
|
||||||
scores = Propagation.scores_at(band, selected_time, socket.assigns.bounds)
|
scores = Propagation.scores_at(band, selected_time, socket.assigns.bounds)
|
||||||
|
|
||||||
socket =
|
socket =
|
||||||
|
|
@ -158,7 +157,7 @@ defmodule MicrowavepropWeb.MapLive do
|
||||||
if socket.assigns.selected_time in valid_times do
|
if socket.assigns.selected_time in valid_times do
|
||||||
socket.assigns.selected_time
|
socket.assigns.selected_time
|
||||||
else
|
else
|
||||||
List.first(valid_times)
|
closest_to_now(valid_times)
|
||||||
end
|
end
|
||||||
|
|
||||||
scores = Propagation.scores_at(band, selected_time, socket.assigns.bounds)
|
scores = Propagation.scores_at(band, selected_time, socket.assigns.bounds)
|
||||||
|
|
@ -209,6 +208,13 @@ defmodule MicrowavepropWeb.MapLive do
|
||||||
Calendar.strftime(dt, "%H:%M")
|
Calendar.strftime(dt, "%H:%M")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp closest_to_now([]), do: nil
|
||||||
|
|
||||||
|
defp closest_to_now(times) do
|
||||||
|
now = DateTime.utc_now()
|
||||||
|
Enum.min_by(times, fn t -> abs(DateTime.diff(t, now)) end)
|
||||||
|
end
|
||||||
|
|
||||||
defp score_range_km(score, config) do
|
defp score_range_km(score, config) do
|
||||||
cond do
|
cond do
|
||||||
score >= 80 -> config.exceptional_range_km
|
score >= 80 -> config.exceptional_range_km
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue