You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(editor): make page slug editable via a new Page settings dialog (CoreBunch#220)
* fix(editor): make page slug editable via a new Page settings dialog
A page's slug could only be set at creation time — the site explorer's
inline rename only ever updates the title (renamePage(id, title) with
no third arg leaves the slug untouched), and there was no other slug
editor for a regular (non-template) page. The Data tab correctly locks
slug as an editor-managed built-in field, but the editor had nowhere
to actually manage it.
Add a "Page settings" context-menu item (regular pages only — template
pages already get title+slug through the existing Template settings
dialog) that opens a small Title + Slug form, reusing the same slug
validation helpers as TemplateSettingsDialog. The homepage's slug
field is disabled since "index" is a reserved sentinel, not a freely
editable value.
Extracted the Template/Page settings dialog state and handlers into a
usePageSettingsDialogs hook — adding the new dialog inline pushed
SiteExplorerPanel.tsx over the 700-line module-size-budgets ceiling.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* fix(data): hide Add row / Duplicate row on tables with no editable fields
Pages, Components, and Layouts start out with every field marked
built-in and value-locked (isBuiltInValueLocked), so a generic
"Add row" or "Duplicate row" through the Data tab has nothing it can
actually fill in — buildEmptyCells and buildDuplicateRowCells always
include the locked field keys, and the server's lockedBuiltInCellKey
guard rejects the request every time. The UI offered both actions
unconditionally, so clicking them silently did nothing beyond a
console.error, making the whole table look broken/read-only.
Add tableHasEditableFields(table) to systemTableGuard.ts (true when at
least one field isn't value-locked) and use it in DataCanvas to hide
both affordances for tables where every field is locked. As defense
in depth, also surface handleAddRow / handleDuplicateRow failures via
the toast bus instead of console.error-only, matching this project's
error-handling convention for user-triggered operations.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments