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', + }, + ]); +});