diff --git a/lib/music_library_web/live/wishlist_live/index.ex b/lib/music_library_web/live/wishlist_live/index.ex index 8c814d7d..0b1dcf0c 100644 --- a/lib/music_library_web/live/wishlist_live/index.ex +++ b/lib/music_library_web/live/wishlist_live/index.ex @@ -154,6 +154,15 @@ defmodule MusicLibraryWeb.WishlistLive.Index do String.to_integer(value) end + defp back_path(record_list_params) do + qs = + record_list_params + |> Map.take([:query, :page, :page_size]) + |> Enum.filter(fn {_, v} -> v not in ["", nil] end) + + ~p"/wishlist?#{qs}" + end + defp musicbrainz_url(record) do "https://musicbrainz.org/release-group/#{record.musicbrainz_id}" end diff --git a/lib/music_library_web/live/wishlist_live/index.html.heex b/lib/music_library_web/live/wishlist_live/index.html.heex index c8aca7e5..7dd2f9c2 100644 --- a/lib/music_library_web/live/wishlist_live/index.html.heex +++ b/lib/music_library_web/live/wishlist_live/index.html.heex @@ -171,7 +171,12 @@ -<.modal :if={@live_action == :edit} id="record-modal" show on_cancel={JS.patch(~p"/wishlist")}> +<.modal + :if={@live_action == :edit} + id="record-modal" + show + on_cancel={JS.patch(back_path(@record_list_params))} +> <.live_component module={MusicLibraryWeb.RecordLive.FormComponent} id={@record.id} @@ -179,18 +184,23 @@ action={@live_action} show_purchased_at={false} record={@record} - patch={~p"/wishlist"} + patch={back_path(@record_list_params)} /> -<.modal :if={@live_action == :import} id="record-modal" show on_cancel={JS.patch(~p"/wishlist")}> +<.modal + :if={@live_action == :import} + id="record-modal" + show + on_cancel={JS.patch(back_path(@record_list_params))} +> <.live_component module={MusicLibraryWeb.RecordLive.ImportComponent} id={:search} title={@page_title} action={@live_action} record={@record} - patch={~p"/wishlist"} + patch={back_path(@record_list_params)} initial_query="" />