diff --git a/lib/modules/publishing/web/editor.html.heex b/lib/modules/publishing/web/editor.html.heex index e56dcf1b..f2394e93 100644 --- a/lib/modules/publishing/web/editor.html.heex +++ b/lib/modules/publishing/web/editor.html.heex @@ -639,6 +639,27 @@
<.form for={@form} id="publishing-meta" phx-change="update_meta" phx-submit="noop"> + <%!-- Title field — full width above the editor columns --%> +
+ +

+ <%= if @is_primary_language do %> + {gettext("Auto-populated from the first heading. Edit to override.")} + <% else %> + {gettext("Leave empty to use the primary language title.")} + <% end %> +

+
+
@@ -950,27 +971,6 @@
- <%!-- Title field --%> -
- -

- <%= if @is_primary_language do %> - {gettext("Auto-populated from the first heading. Edit to override.")} - <% else %> - {gettext("Leave empty to use the primary language title.")} - <% end %> -

-
-

{gettext("Content")}

diff --git a/lib/phoenix_kit_web/components/layout_wrapper.ex b/lib/phoenix_kit_web/components/layout_wrapper.ex index 22c54bcb..58e1a5d2 100644 --- a/lib/phoenix_kit_web/components/layout_wrapper.ex +++ b/lib/phoenix_kit_web/components/layout_wrapper.ex @@ -215,7 +215,11 @@ defmodule PhoenixKitWeb.Components.LayoutWrapper do if admin_page?(assigns) do # Mark that admin chrome is being rendered by this (LiveView) call. # The layout's call (from_layout=true) will detect this and short-circuit. - Process.put(:phoenix_kit_admin_chrome_rendered, true) + # Only set the flag for non-layout calls (core views that call app_layout directly). + # Plugin views never call app_layout, so the layout's own call should NOT set + # the flag — otherwise it persists in the process dictionary and causes the + # layout to incorrectly short-circuit on subsequent LiveView re-renders. + unless assigns[:from_layout], do: Process.put(:phoenix_kit_admin_chrome_rendered, true) # Create new inner_block slot that wraps original content with admin navigation original_inner_block = assigns[:inner_block]