diff --git a/lib/dotcom_web/live/schedule_finder_live.ex b/lib/dotcom_web/live/schedule_finder_live.ex index dde71fdbb0..d65fb46d0f 100644 --- a/lib/dotcom_web/live/schedule_finder_live.ex +++ b/lib/dotcom_web/live/schedule_finder_live.ex @@ -231,18 +231,10 @@ defmodule DotcomWeb.ScheduleFinderLive do end def handle_event("select_service", %{"selected_service" => selected_service_label}, socket) do - selected_dated_service = - socket.assigns.service_groups - |> Enum.flat_map(& &1.services) - |> Enum.find(&(&1.label == selected_service_label)) - - daily_schedule_date = - selected_dated_service.last_service_date - {:noreply, socket - |> assign(:selected_service_name, selected_service_label) - |> assign(:daily_schedule_date, daily_schedule_date) + |> assign(:departures, AsyncResult.loading()) + |> assign_service(selected_service_label) |> assign_departures()} end @@ -365,6 +357,20 @@ defmodule DotcomWeb.ScheduleFinderLive do end end + defp assign_service(socket, selected_service_label) do + selected_dated_service = + socket.assigns.service_groups + |> Enum.flat_map(& &1.services) + |> Enum.find(&(&1.label == selected_service_label)) + + daily_schedule_date = + selected_dated_service.last_service_date + + socket + |> assign(:selected_service_name, selected_service_label) + |> assign(:daily_schedule_date, daily_schedule_date) + end + defp get_departures(route_id, direction_id, stop_id, date) do case daily_departures(route_id, direction_id, stop_id, date) do {:ok, departures} -> {:ok, %{departures: departures}}