From d6b77586c11f664c356e80fc9612c92db3cb55e1 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Fri, 4 Jul 2025 13:34:40 +0100 Subject: [PATCH] Consistently road scrobble rules when creating or editing a scrobble rule --- .../live/scrobble_rules_live/index.ex | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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}},