diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2024-07-30 17:28:08 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-30 17:28:08 +0900 |
| commit | 9181eb277ea2a04a52eb53e8e3a81c8de9bbbce4 (patch) | |
| tree | 1fea921c6d6b2d18d553cd6ca4c62f7c00bae461 | |
| parent | enhance(frontend): 自分のクリップ一覧ではアバターを表示し... (diff) | |
| download | sharkey-9181eb277ea2a04a52eb53e8e3a81c8de9bbbce4.tar.gz sharkey-9181eb277ea2a04a52eb53e8e3a81c8de9bbbce4.tar.bz2 sharkey-9181eb277ea2a04a52eb53e8e3a81c8de9bbbce4.zip | |
fix(frontend): emojiPickerを使用して絵文字を挿入する際、refに直接挿入するように (#14282)
* fix(frontend): emojiPickerを使用して絵文字を挿入する際、refに直接挿入するように
* add comment
| -rw-r--r-- | packages/frontend/src/components/MkPostForm.vue | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index fa3e2b90b0..51ec941c97 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -906,10 +906,23 @@ async function insertEmoji(ev: MouseEvent) { textAreaReadOnly.value = true; const target = ev.currentTarget ?? ev.target; if (target == null) return; + + // emojiPickerはダイアログが閉じずにtextareaとやりとりするので、 + // focustrapをかけているとinsertTextAtCursorが効かない + // そのため、投稿フォームのテキストに直接注入する + // See: https://github.com/misskey-dev/misskey/pull/14282 + // https://github.com/misskey-dev/misskey/issues/14274 + + let pos = textareaEl.value?.selectionStart ?? 0; + let posEnd = textareaEl.value?.selectionEnd ?? text.value.length; emojiPicker.show( target as HTMLElement, emoji => { - insertTextAtCursor(textareaEl.value, emoji); + const textBefore = text.value.substring(0, pos); + const textAfter = text.value.substring(posEnd); + text.value = textBefore + emoji + textAfter; + pos += emoji.length; + posEnd += emoji.length; }, () => { textAreaReadOnly.value = false; |