diff --git a/lib/music_library_web/live/scrobble_rules_live/index.ex b/lib/music_library_web/live/scrobble_rules_live/index.ex index 00d0ec12..e33c8391 100644 --- a/lib/music_library_web/live/scrobble_rules_live/index.ex +++ b/lib/music_library_web/live/scrobble_rules_live/index.ex @@ -14,16 +14,17 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do {:noreply, apply_action(socket, socket.assigns.live_action, params)} end - defp apply_action(socket, :edit, %{"id" => id}) do + defp apply_action(socket, :edit, %{"id" => id} = params) do socket + |> apply_fallback_index(params) |> assign(:page_title, gettext("Edit Scrobble Rule")) |> assign(:scrobble_rule, ScrobbleRules.get_scrobble_rule!(id)) end - defp apply_action(socket, :new, _params) do + defp apply_action(socket, :new, params) do socket + |> apply_fallback_index(params) |> assign(:page_title, gettext("New Scrobble Rule")) - |> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules()) |> assign(:scrobble_rule, %ScrobbleRule{}) end @@ -34,6 +35,15 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do |> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules()) end + def apply_fallback_index(socket, params) do + if get_in(socket.assigns, [:streams, :scrobble_rules]) == nil do + socket + |> apply_action(:index, params) + else + socket + end + end + @impl true def handle_info( {MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:saved, scrobble_rule}},