diff --git a/lib/live_debugger_web/live/state_live.ex b/lib/live_debugger_web/live/state_live.ex index eca5647cd..c94362016 100644 --- a/lib/live_debugger_web/live/state_live.ex +++ b/lib/live_debugger_web/live/state_live.ex @@ -100,9 +100,20 @@ defmodule LiveDebuggerWeb.StateLive do end @impl true - def handle_info({:node_changed, node_id}, socket) do + def handle_info({:node_changed, new_node_id}, socket) do + lv_process = socket.assigns.lv_process + old_node_id = socket.assigns.node_id + + lv_process.socket_id + |> PubSubUtils.state_changed_topic(lv_process.transport_pid, old_node_id) + |> PubSubUtils.unsubscribe() + + lv_process.socket_id + |> PubSubUtils.state_changed_topic(lv_process.transport_pid, new_node_id) + |> PubSubUtils.subscribe!() + socket - |> assign(node_id: node_id) + |> assign(node_id: new_node_id) |> assign_async_node_with_type() |> noreply() end