From 50820482df8b25533f6838ced545aec3aed3c2b8 Mon Sep 17 00:00:00 2001 From: Flrande <1978616327@qq.com> Date: Thu, 20 Feb 2025 05:52:06 +0000 Subject: [PATCH] fix(editor): auto focus after add inline latex (#10309) https://github.com/user-attachments/assets/09e713ee-e600-464c-8614-d874d343cfb0 Close #10208 --- .../presets/nodes/latex-node/latex-node.ts | 4 ++ .../tests-legacy/e2e/latex/inline.spec.ts | 52 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/blocksuite/affine/components/src/rich-text/inline/presets/nodes/latex-node/latex-node.ts b/blocksuite/affine/components/src/rich-text/inline/presets/nodes/latex-node/latex-node.ts index da518f78a..a7b5e008e 100644 --- a/blocksuite/affine/components/src/rich-text/inline/presets/nodes/latex-node/latex-node.ts +++ b/blocksuite/affine/components/src/rich-text/inline/presets/nodes/latex-node/latex-node.ts @@ -229,6 +229,10 @@ export class AffineLatexNode extends SignalWatcher( latex, } ); + this.editor.setInlineRange({ + index: this.endOffset, + length: 0, + }); } }, { once: true } diff --git a/blocksuite/tests-legacy/e2e/latex/inline.spec.ts b/blocksuite/tests-legacy/e2e/latex/inline.spec.ts index f81dbe4eb..f41b79960 100644 --- a/blocksuite/tests-legacy/e2e/latex/inline.spec.ts +++ b/blocksuite/tests-legacy/e2e/latex/inline.spec.ts @@ -335,3 +335,55 @@ test('undo-redo when add inline latex using markdown shortcut', async ({ ]); await assertRichTextInlineRange(page, 0, 3, 0); }); + +test('auto focus after add inline latex using markdown shortcut', async ({ + page, +}) => { + await enterPlaygroundRoom(page); + await initEmptyParagraphState(page); + await focusRichText(page); + + await type(page, 'aa$$ bbb\ncc'); + await assertRichTextInlineDeltas(page, [ + { + insert: 'aa', + }, + { + insert: ' ', + attributes: { + latex: 'bbb', + }, + }, + { + insert: 'cc', + }, + ]); + + await undoByKeyboard(page); + await assertRichTextInlineDeltas(page, [ + { + insert: 'aa', + }, + { + insert: ' ', + attributes: { + latex: 'bbb', + }, + }, + ]); + await redoByKeyboard(page); + await assertRichTextInlineDeltas(page, [ + { + insert: 'aa', + }, + { + insert: ' ', + attributes: { + latex: 'bbb', + }, + }, + { + insert: 'cc', + }, + ]); +});