defmodule MicrowavepropWeb.WeatherMapComponent do @moduledoc false use MicrowavepropWeb, :html @group_order ["Surface", "Upper Air", "Ducting"] attr :bands, :list, required: true attr :selected, :any, default: nil defp cutoff_band_picker(assigns) do ~H"""
Filter to band
""" end defp group_layers(layers) do layers |> Enum.group_by(& &1.group) |> Enum.sort_by(fn {group, _} -> Enum.find_index(@group_order, &(&1 == group)) || 99 end) end defp layer_description(layers, selected_id) do case Enum.find(layers, &(&1.id == selected_id)) do %{desc: desc} -> desc _ -> nil end end defp selected_layer_label(layers, selected_id) do case Enum.find(layers, &(&1.id == selected_id)) do %{label: label} -> label _ -> "" end end defp selected_layer_group_label(layers, selected_id) do case Enum.find(layers, &(&1.id == selected_id)) do %{group: group} -> group _ -> "" end end @spec render(map()) :: Phoenix.LiveView.Rendered.t() def render(assigns) do ~H"""
<%!-- Map container --%>
<%!-- Full-page map --%>
<%!-- Bottom forecast timeline --%>
<%!-- Mobile-only floating controls --%>
NTMS
{@page_subtitle}
<%= if @valid_time do %> {Calendar.strftime(@valid_time, "%Y-%m-%d %H:%M UTC")} <% else %> No data available <% end %>
{@initial_utc_clock}
<%!-- Point detail panel --%> <%!-- Sidebar expand button (visible when sidebar is collapsed) --%>
<%!-- Desktop right sidebar --%>
""" end end