From 0291017f7e6b3fa8a0e06ec8175bb8a03131320e Mon Sep 17 00:00:00 2001 From: Jonas Date: Tue, 25 Nov 2025 14:53:53 +0100 Subject: [PATCH] fix(TextDirection): Skip composition transactions Without this fix, inserting a CJK character via IME as first character in a new paragraph is broken as the composition key is inserted straight away. Fixes: #7789 Signed-off-by: Jonas --- src/extensions/TextDirection.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extensions/TextDirection.ts b/src/extensions/TextDirection.ts index 95af74c3dc5..d5c005111f3 100644 --- a/src/extensions/TextDirection.ts +++ b/src/extensions/TextDirection.ts @@ -50,15 +50,15 @@ function TextDirectionPlugin({ types }: { types: string[] }) { return new Plugin({ key: new PluginKey('textDirection'), appendTransaction: (transactions, oldState, newState) => { - const isCollabTransaction = transactions.some((tr) => - tr.getMeta('y-sync$'), + const isCollabOrCompositionTransaction = transactions.some( + (tr) => tr.getMeta('y-sync$') || tr.getMeta('composition'), ) const inputRulePlugin = newState.plugins.find( (plugin) => plugin.spec.isInputRules, ) const isInputRuleTransaction = inputRulePlugin && transactions.some((tr) => tr.getMeta(inputRulePlugin)) - if (isCollabTransaction || isInputRuleTransaction) { + if (isCollabOrCompositionTransaction || isInputRuleTransaction) { return } const docChanges = transactions.some(