Make scrobble rules create/update actions play nicely with list ordering
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user