Skip to content

Draft: Tiptap compatibility layer#150

Draft
smoores-dev wants to merge 67 commits into
mainfrom
tiptap
Draft

Draft: Tiptap compatibility layer#150
smoores-dev wants to merge 67 commits into
mainfrom
tiptap

Conversation

@smoores-dev
Copy link
Copy Markdown
Member

No description provided.

@shiz-ceo
Copy link
Copy Markdown

Hi team, I have a question related to integration. As I observed earlier, without tiptap, you use beforeInputPlugin when creating the editor (I tried to figure it out, but I didn't fully understand its essence).

As I understand it, this plugin is not needed for integration with tiptap?

@smoores-dev
Copy link
Copy Markdown
Member Author

smoores-dev commented Jan 15, 2026

@shiz-ceo the beforeInputPlugin is pretty crucial to having a React-based contenteditable implementation. Both the plain <ProseMirror> and the new <TiptapEditorView> components use it under the hood, but it's an implementation detail that clients don't need to know about or use directly. It's a view-only ProseMirror plugin, so it's added directly to the EditorView props by the library when we construct the EditorView.

There is also a reactKeys plugin, which is something that consumers need to add to their EditorState when working with the plain ProseMirror API. With the Tiptap integration, this is covered by the ReactProseMirror Tiptap extension exported in this branch

@shiz-ceo
Copy link
Copy Markdown

shiz-ceo commented Jan 15, 2026

@smoores-dev Thanks for the answer! It turns out that clients will not be able to use the functionality associated with composition and `beforeInput'?

P.S. Of course, these are very specific events for plugins, but they can be used to support languages where an IME is required (F.E).

EDIT: Of course this plugin don't return true from this events, but there may be the same somewhere.

@smoores-dev
Copy link
Copy Markdown
Member Author

The beforeInputPlugin works with IME inputs/compositions (at least, it should). Composition start events are dispatched before beforeInput events, so we handle composition flows separately.

Are you seeing issues with IME inputs? They can vary dramatically across OSes and browsers. We try to test them consistently, but this project's developers all use non-IME inputs, so it's possible that we're not always testing correctly.

@shiz-ceo
Copy link
Copy Markdown

No, I don't use IME input too, but I was just curious if you had ever encountered conflicting situations with this plugin. Thank you for your help!

@smoores-dev smoores-dev force-pushed the tiptap branch 4 times, most recently from 1c4bce2 to eb9703f Compare February 10, 2026 15:54
@smoores-dev smoores-dev force-pushed the tiptap branch 2 times, most recently from b5c46f3 to 802078e Compare March 3, 2026 20:38
@smoores-dev smoores-dev changed the base branch from main to v3 March 9, 2026 18:00
@smoores-dev smoores-dev force-pushed the v3 branch 2 times, most recently from d1abd4e to 908268d Compare March 11, 2026 17:22
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.

3 participants