mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +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