Make scrobble rules create/update actions play nicely with list ordering

This commit is contained in:
Claudio Ortolina
2025-08-06 15:46:08 +03:00
parent 996da20aeb
commit 8113e8bdc0
2 changed files with 11 additions and 4 deletions
@@ -88,7 +88,7 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.FormComponent do
defp save_scrobble_rule(socket, :edit, scrobble_rule_params) do
case ScrobbleRules.update_scrobble_rule(socket.assigns.scrobble_rule, scrobble_rule_params) do
{:ok, scrobble_rule} ->
notify_parent({:saved, scrobble_rule})
notify_parent({:updated, scrobble_rule})
{:noreply,
socket
@@ -103,7 +103,7 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.FormComponent do
defp save_scrobble_rule(socket, :new, scrobble_rule_params) do
case ScrobbleRules.create_scrobble_rule(scrobble_rule_params) do
{:ok, scrobble_rule} ->
notify_parent({:saved, scrobble_rule})
notify_parent({:created, scrobble_rule})
{:noreply,
socket
@@ -32,7 +32,7 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
socket
|> assign(:page_title, gettext("Scrobble Rules"))
|> assign(:scrobble_rule, nil)
|> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules())
|> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules(), reset: true)
end
def apply_fallback_index(socket, params) do
@@ -46,12 +46,19 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
@impl true
def handle_info(
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:saved, scrobble_rule}},
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:created, scrobble_rule}},
socket
) do
{:noreply, stream_insert(socket, :scrobble_rules, scrobble_rule, at: 0)}
end
def handle_info(
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:updated, scrobble_rule}},
socket
) do
{:noreply, stream_insert(socket, :scrobble_rules, scrobble_rule)}
end
@impl true
def handle_event("delete", %{"id" => id}, socket) do
scrobble_rule = ScrobbleRules.get_scrobble_rule!(id)