fix page settings section and blocks not showing in editor
All checks were successful
deploy / deploy (push) Successful in 1m16s

Two bugs fixed:

1. Page Settings section wasn't appearing for system pages because
   Defaults.for_slug didn't return all required fields (type,
   meta_description, published, etc). Also changed page_renderer
   to use bracket notation for safer field access.

2. Blocks weren't loading when navigating directly to ?edit=page
   because the PageEditorHook's handle_params ran before Shop.Page
   assigned @page. Added pending page mode mechanism: hook sets a
   flag when edit mode is requested but @page is nil, then Shop.Page
   calls maybe_enter_pending_page_mode after @page is assigned.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-29 20:30:36 +01:00
parent 9a506357eb
commit 04ce28ca29
5 changed files with 44 additions and 13 deletions

View File

@@ -237,6 +237,9 @@ defmodule BerrypodWeb.Shop.Page do
# Must run after handle_params since Content pages set @page there.
socket = maybe_sync_editing_blocks(socket)
# If edit mode was requested via URL but @page wasn't available yet, enter it now
socket = BerrypodWeb.PageEditorHook.maybe_enter_pending_page_mode(socket)
{:noreply, socket}
end