fix(editor): ime input error at empty line (#11636)

Close [BS-3106](https://linear.app/affine-design/issue/BS-3106/mac-chrom在空行使用ime输入,文档卡住)
This commit is contained in:
L-Sun
2025-04-11 10:39:16 +00:00
parent e1e5e8fc14
commit aabb09b31f
22 changed files with 148 additions and 110 deletions
@@ -1,7 +1,7 @@
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
import type { VElement, VLine } from '../components/index.js';
import { INLINE_ROOT_ATTR, ZERO_WIDTH_SPACE } from '../consts.js';
import { INLINE_ROOT_ATTR, ZERO_WIDTH_FOR_EMPTY_LINE } from '../consts.js';
import type { DomPoint, TextPoint } from '../types.js';
import {
isInlineRoot,
@@ -76,7 +76,7 @@ export function textPointToDomPoint(
index += calculateTextLength(text);
}
if (text.wholeText !== ZERO_WIDTH_SPACE) {
if (text.wholeText !== ZERO_WIDTH_FOR_EMPTY_LINE) {
index += offset;
}
@@ -1,7 +1,7 @@
import { ZERO_WIDTH_SPACE } from '../consts.js';
import { ZERO_WIDTH_FOR_EMPTY_LINE } from '../consts.js';
export function calculateTextLength(text: Text): number {
if (text.wholeText === ZERO_WIDTH_SPACE) {
if (text.wholeText === ZERO_WIDTH_FOR_EMPTY_LINE) {
return 0;
} else {
return text.wholeText.length;