diff --git a/lib/phoenix/live_dashboard/pages/request_logger_page.ex b/lib/phoenix/live_dashboard/pages/request_logger_page.ex index 100912ee..84d93fd8 100644 --- a/lib/phoenix/live_dashboard/pages/request_logger_page.ex +++ b/lib/phoenix/live_dashboard/pages/request_logger_page.ex @@ -19,7 +19,8 @@ defmodule Phoenix.LiveDashboard.RequestLoggerPage do end socket = - assign(socket, + socket + |> assign( stream: stream, param_key: param_key, cookie_key: cookie_key, @@ -28,8 +29,10 @@ defmodule Phoenix.LiveDashboard.RequestLoggerPage do autoscroll_enabled: true, messages_present: false ) + |> stream_configure(:messages, dom_id: fn _ -> "log-#{System.unique_integer()}" end) + |> stream(:messages, []) - {:ok, socket, temporary_assigns: [messages: []]} + {:ok, socket} end def mount(_, %{request_logger: _}, socket) do @@ -53,7 +56,7 @@ defmodule Phoenix.LiveDashboard.RequestLoggerPage do @impl true def handle_info({:logger, level, message}, socket) do - {:noreply, assign(socket, messages: [{message, level}], messages_present: true)} + {:noreply, socket |> stream(:messages, [{message, level}]) |> assign(messages_present: true)} end @impl true @@ -78,9 +81,9 @@ defmodule Phoenix.LiveDashboard.RequestLoggerPage do
-
- <%= for {message, level} <- @messages do %> -
<%= message %>
+
+ <%= for {id, {message, level}} <- @streams.messages do %> +
<%= message %>
<% end %>