mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Remove jQuery from the image pasting functionality (#29324)
- Switched to plain JavaScript - Tested the image pasting functionality and it works as before # Demo using JavaScript without jQuery  Signed-off-by: Yarden Shoham <git@yardenshoham.com>
This commit is contained in:
		| @@ -1,4 +1,3 @@ | ||||
| import $ from 'jquery'; | ||||
| import {htmlEscape} from 'escape-goat'; | ||||
| import {POST} from '../../modules/fetch.js'; | ||||
| import {imageInfo} from '../../utils/image.js'; | ||||
| @@ -93,11 +92,10 @@ class CodeMirrorEditor { | ||||
| } | ||||
|  | ||||
| const uploadClipboardImage = async (editor, dropzone, e) => { | ||||
|   const $dropzone = $(dropzone); | ||||
|   const uploadUrl = $dropzone.attr('data-upload-url'); | ||||
|   const $files = $dropzone.find('.files'); | ||||
|   const uploadUrl = dropzone.getAttribute('data-upload-url'); | ||||
|   const filesContainer = dropzone.querySelector('.files'); | ||||
|  | ||||
|   if (!uploadUrl || !$files.length) return; | ||||
|   if (!uploadUrl || !filesContainer) return; | ||||
|  | ||||
|   const pastedImages = clipboardPastedImages(e); | ||||
|   if (!pastedImages || pastedImages.length === 0) { | ||||
| @@ -126,8 +124,12 @@ const uploadClipboardImage = async (editor, dropzone, e) => { | ||||
|     } | ||||
|     editor.replacePlaceholder(placeholder, text); | ||||
|  | ||||
|     const $input = $(`<input name="files" type="hidden">`).attr('id', uuid).val(uuid); | ||||
|     $files.append($input); | ||||
|     const input = document.createElement('input'); | ||||
|     input.setAttribute('name', 'files'); | ||||
|     input.setAttribute('type', 'hidden'); | ||||
|     input.setAttribute('id', uuid); | ||||
|     input.value = uuid; | ||||
|     filesContainer.append(input); | ||||
|   } | ||||
| }; | ||||
|  | ||||
| @@ -140,7 +142,7 @@ export function initEasyMDEImagePaste(easyMDE, dropzone) { | ||||
|  | ||||
| export function initTextareaImagePaste(textarea, dropzone) { | ||||
|   if (!dropzone) return; | ||||
|   $(textarea).on('paste', async (e) => { | ||||
|     return uploadClipboardImage(new TextareaEditor(textarea), dropzone, e.originalEvent); | ||||
|   textarea.addEventListener('paste', async (e) => { | ||||
|     return uploadClipboardImage(new TextareaEditor(textarea), dropzone, e); | ||||
|   }); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user