Skip to content

[codex] restore ProseMirror-selectednode with selection hook#257

Draft
ocavue wants to merge 2 commits into
mainfrom
codex/selection-change-hook-default
Draft

[codex] restore ProseMirror-selectednode with selection hook#257
ocavue wants to merge 2 commits into
mainfrom
codex/selection-change-hook-default

Conversation

@ocavue

@ocavue ocavue commented Jul 7, 2026

Copy link
Copy Markdown
Member

Summary

  • Restore ProseMirror's default selected-node class and draggable behavior in CoreNodeView when no custom select handlers are provided.
  • Add onSelectionChange as a post-select/deselect hook so framework adapters can refresh context without replacing nodeView.selectNode or nodeView.deselectNode.
  • Keep user-provided selectNode and deselectNode wired directly through the normal options path.
  • Add e2e coverage for .ProseMirror-selectednode and draggable toggling across Lit, Preact, React, Solid, Svelte, and Vue examples.
  • Add a patch changeset and document the new node-view option.

Root Cause

Framework adapters installed internal selectNode and deselectNode callbacks to rerender selected state. prosemirror-view treats those callbacks as custom node-view overrides, so its default selected-node behavior never ran for adapter node views.

This version keeps those override slots reserved for user-provided handlers and moves framework context refreshes into onSelectionChange, which runs after selectNode or deselectNode completes.

Checks

  • pnpm run build
  • pnpm --filter=e2e test tests/node-view.spec.ts --project=chromium
  • pnpm run typecheck
  • pnpm run lint
  • pnpm run test

@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
prosemirror-adapter-e2e Ready Ready Preview, Comment Jul 7, 2026 6:05pm

@pkg-pr-new

pkg-pr-new Bot commented Jul 7, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prosemirror-adapter/core

npm i https://pkg.pr.new/@prosemirror-adapter/core@257

@prosemirror-adapter/lit

npm i https://pkg.pr.new/@prosemirror-adapter/lit@257

@prosemirror-adapter/preact

npm i https://pkg.pr.new/@prosemirror-adapter/preact@257

@prosemirror-adapter/react

npm i https://pkg.pr.new/@prosemirror-adapter/react@257

@prosemirror-adapter/solid

npm i https://pkg.pr.new/@prosemirror-adapter/solid@257

@prosemirror-adapter/svelte

npm i https://pkg.pr.new/@prosemirror-adapter/svelte@257

@prosemirror-adapter/vue

npm i https://pkg.pr.new/@prosemirror-adapter/vue@257

commit: 3b17561

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