diff --git a/blocksuite/affine/blocks/paragraph/src/utils/merge-with-prev.ts b/blocksuite/affine/blocks/paragraph/src/utils/merge-with-prev.ts index 26af657b26..b96de60532 100644 --- a/blocksuite/affine/blocks/paragraph/src/utils/merge-with-prev.ts +++ b/blocksuite/affine/blocks/paragraph/src/utils/merge-with-prev.ts @@ -24,6 +24,7 @@ import { getPrevContentBlock, matchModels, } from '@blocksuite/affine-shared/utils'; +import { IS_MOBILE } from '@blocksuite/global/env'; import { BlockSelection, type EditorHost } from '@blocksuite/std'; import type { BlockModel, Text } from '@blocksuite/store'; @@ -91,10 +92,17 @@ export function mergeWithPrev(editorHost: EditorHost, model: BlockModel) { ...EMBED_BLOCK_MODEL_LIST, ]) ) { - const selection = editorHost.selection.create(BlockSelection, { - blockId: prevBlock.id, - }); - editorHost.selection.setGroup('note', [selection]); + // due to create a block selection will clear text selection, which lead + // the virtual keyboard to be auto closed on mobile. This behavior breaks + // the user experience. + if (!IS_MOBILE) { + const selection = editorHost.selection.create(BlockSelection, { + blockId: prevBlock.id, + }); + editorHost.selection.setGroup('note', [selection]); + } else { + doc.deleteBlock(prevBlock); + } if (model.text?.length === 0) { doc.deleteBlock(model, { diff --git a/blocksuite/affine/widgets/keyboard-toolbar/src/keyboard-toolbar.ts b/blocksuite/affine/widgets/keyboard-toolbar/src/keyboard-toolbar.ts index d3e4db782d..19a7e28554 100644 --- a/blocksuite/affine/widgets/keyboard-toolbar/src/keyboard-toolbar.ts +++ b/blocksuite/affine/widgets/keyboard-toolbar/src/keyboard-toolbar.ts @@ -221,7 +221,7 @@ export class AffineKeyboardToolbar extends SignalWatcher( } private _renderItems() { - if (document.activeElement !== this.rootComponent) + if (!this.std.event.active$.value) return html`
`; const goPrevToolbarAction = when( diff --git a/blocksuite/affine/widgets/keyboard-toolbar/src/widget.ts b/blocksuite/affine/widgets/keyboard-toolbar/src/widget.ts index 7dda4385c9..41485b1d57 100644 --- a/blocksuite/affine/widgets/keyboard-toolbar/src/widget.ts +++ b/blocksuite/affine/widgets/keyboard-toolbar/src/widget.ts @@ -61,29 +61,26 @@ export class AffineKeyboardToolbarWidget extends WidgetComponent