From 968b533a1de39ba25a463ecd88b29e33895bfd5d Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sun, 8 Jun 2025 20:07:35 +0100 Subject: [PATCH] Wishlist show page listens to record updates --- lib/music_library_web/live/wishlist_live/show.ex | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/music_library_web/live/wishlist_live/show.ex b/lib/music_library_web/live/wishlist_live/show.ex index f11c98ca..c70c9fa9 100644 --- a/lib/music_library_web/live/wishlist_live/show.ex +++ b/lib/music_library_web/live/wishlist_live/show.ex @@ -13,9 +13,13 @@ defmodule MusicLibraryWeb.WishlistLive.Show do alias MusicLibrary.Records @impl true - def mount(_params, _session, socket) do + def mount(%{"id" => record_id}, _session, socket) do current_date = DateTime.utc_now() |> DateTime.to_date() + if connected?(socket) do + Records.subscribe(record_id) + end + {:ok, socket |> assign(current_section: :wishlist) @@ -28,7 +32,6 @@ defmodule MusicLibraryWeb.WishlistLive.Show do {:noreply, socket - |> assign(:current_section, :wishlist) |> assign(:page_title, page_title(socket.assigns.live_action, record)) |> assign(:record, record)} end @@ -142,6 +145,14 @@ defmodule MusicLibraryWeb.WishlistLive.Show do {:noreply, assign(socket, :record, record)} end + @impl true + def handle_info({:update, record}, socket) do + {:noreply, + socket + |> put_flash(:info, gettext("Record updated in the background")) + |> assign(:record, record)} + end + def page_title(action, record) do Enum.join( [