Skip to content

Commit dfadd1d

Browse files
authored
fix(emoji): 插入表情后光标的位置不正确 (#343)
* fix(emoji): 插入表情后光标的位置不正确 * fix(emoji): 移除未使用的导入
1 parent ca71b15 commit dfadd1d

1 file changed

Lines changed: 5 additions & 19 deletions

File tree

  • packages/fluent-editor/src/modules

packages/fluent-editor/src/modules/emoji.ts

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { Delta } from 'quill'
21
import type TypeToolbar from 'quill/modules/toolbar'
32
import type FluentEditor from '../fluent-editor'
43
import data from '@emoji-mart/data'
@@ -178,33 +177,20 @@ class EmojiModule {
178177
}
179178

180179
try {
181-
const emojiDelta = this.quill.insertText(selection.index, emoji.native, 'user')
180+
// 记录插入位置
181+
const insertIndex = selection.index
182+
this.quill.insertText(insertIndex, emoji.native, 'user')
182183

183184
this.closeDialog()
184185

185-
// 异步设置光标位置,确保插入完成后再设置
186-
this.setSelectionAfterEmoji(emojiDelta)
186+
// 设置光标到表情符号后面
187+
this.quill.setSelection(insertIndex + emoji.native.length)
187188
}
188189
catch (error) {
189190
console.error('Failed to insert emoji:', error)
190191
}
191192
}
192193

193-
// 设置表情插入后的光标位置
194-
private setSelectionAfterEmoji(emojiDelta: Delta) {
195-
setTimeout(() => {
196-
try {
197-
const newSelection = this.quill.getSelection(true)
198-
if (newSelection && emojiDelta) {
199-
this.quill.setSelection(newSelection.index + emojiDelta.length())
200-
}
201-
}
202-
catch (error) {
203-
console.warn('Failed to set selection after emoji insertion:', error)
204-
}
205-
}, 0)
206-
}
207-
208194
// 处理外部点击事件
209195
private handleClickOutside(event: MouseEvent) {
210196
const button = this.getEmojiButton()

0 commit comments

Comments
 (0)