summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-07-30 17:28:08 +0900
committerGitHub <noreply@github.com>2024-07-30 17:28:08 +0900
commit9181eb277ea2a04a52eb53e8e3a81c8de9bbbce4 (patch)
tree1fea921c6d6b2d18d553cd6ca4c62f7c00bae461
parentenhance(frontend): 自分のクリップ一覧ではアバターを表示し... (diff)
downloadsharkey-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.vue15
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;