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
|
defp save_scrobble_rule(socket, :edit, scrobble_rule_params) do
|
||||||
case ScrobbleRules.update_scrobble_rule(socket.assigns.scrobble_rule, scrobble_rule_params) do
|
case ScrobbleRules.update_scrobble_rule(socket.assigns.scrobble_rule, scrobble_rule_params) do
|
||||||
{:ok, scrobble_rule} ->
|
{:ok, scrobble_rule} ->
|
||||||
notify_parent({:saved, scrobble_rule})
|
notify_parent({:updated, scrobble_rule})
|
||||||
|
|
||||||
{:noreply,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
@@ -103,7 +103,7 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.FormComponent do
|
|||||||
defp save_scrobble_rule(socket, :new, scrobble_rule_params) do
|
defp save_scrobble_rule(socket, :new, scrobble_rule_params) do
|
||||||
case ScrobbleRules.create_scrobble_rule(scrobble_rule_params) do
|
case ScrobbleRules.create_scrobble_rule(scrobble_rule_params) do
|
||||||
{:ok, scrobble_rule} ->
|
{:ok, scrobble_rule} ->
|
||||||
notify_parent({:saved, scrobble_rule})
|
notify_parent({:created, scrobble_rule})
|
||||||
|
|
||||||
{:noreply,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
|
|||||||
socket
|
socket
|
||||||
|> assign(:page_title, gettext("Scrobble Rules"))
|
|> assign(:page_title, gettext("Scrobble Rules"))
|
||||||
|> assign(:scrobble_rule, nil)
|
|> assign(:scrobble_rule, nil)
|
||||||
|> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules())
|
|> stream(:scrobble_rules, ScrobbleRules.list_scrobble_rules(), reset: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply_fallback_index(socket, params) do
|
def apply_fallback_index(socket, params) do
|
||||||
@@ -46,12 +46,19 @@ defmodule MusicLibraryWeb.ScrobbleRulesLive.Index do
|
|||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info(
|
def handle_info(
|
||||||
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:saved, scrobble_rule}},
|
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:created, scrobble_rule}},
|
||||||
socket
|
socket
|
||||||
) do
|
) do
|
||||||
{:noreply, stream_insert(socket, :scrobble_rules, scrobble_rule, at: 0)}
|
{:noreply, stream_insert(socket, :scrobble_rules, scrobble_rule, at: 0)}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def handle_info(
|
||||||
|
{MusicLibraryWeb.ScrobbleRulesLive.FormComponent, {:updated, scrobble_rule}},
|
||||||
|
socket
|
||||||
|
) do
|
||||||
|
{:noreply, stream_insert(socket, :scrobble_rules, scrobble_rule)}
|
||||||
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_event("delete", %{"id" => id}, socket) do
|
def handle_event("delete", %{"id" => id}, socket) do
|
||||||
scrobble_rule = ScrobbleRules.get_scrobble_rule!(id)
|
scrobble_rule = ScrobbleRules.get_scrobble_rule!(id)
|
||||||
|
|||||||
Reference in New Issue
Block a user