Skip to content

fix(editor): make page slug editable via a new Page settings dialog#220

Open
gxvr wants to merge 1 commit into
CoreBunch:mainfrom
gxvr:fix/page-slug-settings-ui
Open

fix(editor): make page slug editable via a new Page settings dialog#220
gxvr wants to merge 1 commit into
CoreBunch:mainfrom
gxvr:fix/page-slug-settings-ui

Conversation

@gxvr

@gxvr gxvr commented Jul 14, 2026

Copy link
Copy Markdown

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.

Summary

Describe the change and why it is needed.

Verification

  • bun run build
  • bun test
  • bun run lint
  • Docker/deployment check, if relevant

Checklist

  • Tests cover behavior changes.
  • Docs were updated when behavior, config, deployment, or public surfaces changed.
  • No compatibility shim was added for old pre-release behavior.
  • No secrets, local databases, uploads, or generated artifacts are included.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant