mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	fix(frontend): emojiPickerを使用して絵文字を挿入する際、refに直接挿入するように (#14282)
* fix(frontend): emojiPickerを使用して絵文字を挿入する際、refに直接挿入するように * add comment
This commit is contained in:
		
							parent
							
								
									3548ffba26
								
							
						
					
					
						commit
						9181eb277e
					
				
					 1 changed files with 14 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue