Open full-page collections as a block in the Canvas#255
Merged
Conversation
# Conflicts: # docs/tech-debt.md # src/components/PageInspectorSidebar.js # src/index.scss
The earlier rule only hid the ::before halo when the block was selected or hovered. Gutenberg also paints an ::after pseudo and direct outline/box-shadow on focus, so the bounding box kept showing up around the canvas body. Match the block by [data-type] so the reset hits the actual wrapper, and cover every selection state the block-editor uses.
Full-page collections render inside the BlockCanvas iframe now, so locators
that targeted .cortext-data-view directly in the page DOM never resolve.
Update the e2e tests that visit /collection/<slug>-<id> to reach the table
through page.frameLocator('[name="editor-canvas"]'), and teach the
navigation-lifecycle paint helper to look inside the iframe before falling
back to the pane DOM.
The backfill loop only marks itself complete when every collection was updated successfully so failures get retried, but the rewrite-rules flush was sharing that option. A single stubborn wp_update_post would keep the option unset and re-flush rewrites on every request, which is a slow .htaccess rewrite on Apache. Give the flush its own option so it runs once after upgrade and is done, independent of the backfill loop's retry behavior.
WordPress reuses post IDs across post types (wp_posts.ID is shared), so a
page with id 42 and a collection with id 42 can coexist. The reducer's id
check alone would let a stale DOCUMENT_RESOLVED from a previous page target
apply to a same-id collection target. Carry the kind ('document' or
'collection') through the action and reject anything whose kind does not
match state.target.kind. Same gate on DOCUMENT_NOT_FOUND.
When a collection's post_content already contained a cortext/data-view block pointing at another collection, the backfill appended the self-referencing owner block after it. The previous dedup pass keyed singletons on block.name and treated the second data-view as a duplicate, removing the owner. The insertion pass then re-added the owner on the next render, and so on. Key owner dedup on the collectionId attribute so foreign data-views are left alone and only true owner duplicates are removed.
Full-page collections share Canvas with pages now, so navigating between them keeps the same workspace pane active and just swaps the inner document. The "page pane flips to inactive" assertion was a holdover from the separate-pane model and never held under the new routing.
# Conflicts: # cortext.php
The old assertion compared .cortext-canvas DOM nodes captured before and after a page → collection → page round trip, expecting the document pane's canvas to stay mounted through the collection switch. That held when pages and collections owned separate workspace panes. Now that both share Canvas, React can drop the node when the inner postType changes without breaking the no-blank-flash guarantee, which the waitForActiveDataViewWithoutBlanking helper and the view-transition probe already cover.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Related to #219.
Full-page collections now open in Canvas, using the same document surface as pages. That means collections get the normal title, icon, cover, settings, publish controls, and a locked data-view block for their table.
Why
A full-page collection is closer to a document than a separate table screen. This makes collection editing feel like the rest of the workspace without changing the collection URL shape.
How
Testing Instructions
Screen recording
Grabacion.de.pantalla.2026-05-25.a.las.13.24.51.mov