diff --git a/lib/music_library_web/live/collection_live/index.ex b/lib/music_library_web/live/collection_live/index.ex index 8ad59aee..c154e289 100644 --- a/lib/music_library_web/live/collection_live/index.ex +++ b/lib/music_library_web/live/collection_live/index.ex @@ -33,45 +33,24 @@ defmodule MusicLibraryWeb.CollectionLive.Index do end defp apply_action(socket, :import, params) do - socket = - if get_in(socket.assigns, [:streams, :records]) == nil do - socket - |> apply_action(:index, params) - else - socket - end - socket + |> apply_fallback_index(params) |> assign(:page_title, gettext("Add new Record · Collection")) |> assign(:record, nil) end defp apply_action(socket, :barcode_scan, params) do - socket = - if get_in(socket.assigns, [:streams, :records]) == nil do - socket - |> apply_action(:index, params) - else - socket - end - socket + |> apply_fallback_index(params) |> assign(:page_title, gettext("Scan barcodes · Collection")) |> assign(:record, nil) end defp apply_action(socket, :edit, %{"id" => id} = params) do - socket = - if get_in(socket.assigns, [:streams, :records]) == nil do - socket - |> apply_action(:index, params) - else - socket - end - record = Records.get_record!(id) socket + |> apply_fallback_index(params) |> assign(:page_title, Show.page_title(socket.assigns.live_action, record)) |> assign(:record, record) end @@ -90,6 +69,15 @@ defmodule MusicLibraryWeb.CollectionLive.Index do load_and_assign_records(socket, record_list_params) end + def apply_fallback_index(socket, params) do + if get_in(socket.assigns, [:streams, :records]) == nil do + socket + |> apply_action(:index, params) + else + socket + end + end + @impl true def handle_info({MusicLibraryWeb.FormComponent, {:saved, _record}}, socket) do {:noreply, load_and_assign_records(socket, socket.assigns.record_list_params)} diff --git a/lib/music_library_web/live/wishlist_live/index.ex b/lib/music_library_web/live/wishlist_live/index.ex index 4098394a..e18257ba 100644 --- a/lib/music_library_web/live/wishlist_live/index.ex +++ b/lib/music_library_web/live/wishlist_live/index.ex @@ -37,31 +37,17 @@ defmodule MusicLibraryWeb.WishlistLive.Index do end defp apply_action(socket, :import, params) do - socket = - if get_in(socket.assigns, [:streams, :records]) == nil do - socket - |> apply_action(:index, params) - else - socket - end - socket + |> apply_fallback_index(params) |> assign(:page_title, gettext("Add new Record · Wishlist")) |> assign(:record, nil) end defp apply_action(socket, :edit, %{"id" => id} = params) do - socket = - if get_in(socket.assigns, [:streams, :records]) == nil do - socket - |> apply_action(:index, params) - else - socket - end - record = Records.get_record!(id) socket + |> apply_fallback_index(params) |> assign(:page_title, Show.page_title(socket.assigns.live_action, record)) |> assign(:record, record) end @@ -78,6 +64,15 @@ defmodule MusicLibraryWeb.WishlistLive.Index do load_and_assign_records(socket, record_list_params) end + def apply_fallback_index(socket, params) do + if get_in(socket.assigns, [:streams, :records]) == nil do + socket + |> apply_action(:index, params) + else + socket + end + end + @impl true def handle_info({MusicLibraryWeb.FormComponent, {:saved, _record}}, socket) do {:noreply, load_and_assign_records(socket, socket.assigns.record_list_params)}