1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-24 07:42:07 +03:00

Lexical: Added image insert via image link paste

Specifically added to align with existing TinyMCE behaviour which was
used by some users based upon new editor feedback.
This commit is contained in:
Dan Brown
2025-05-26 18:02:53 +01:00
parent c4f7368c1c
commit a43a1832f5

View File

@ -95,6 +95,21 @@ function handleMediaInsert(data: DataTransfer, context: EditorUiContext): boolea
return handled;
}
function handleImageLinkInsert(data: DataTransfer, context: EditorUiContext): boolean {
const regex = /https?:\/\/([^?#]*?)\.(png|jpeg|jpg|gif|webp|bmp|avif)/i
const text = data.getData('text/plain');
if (text && regex.test(text)) {
context.editor.update(() => {
const image = $createImageNode(text);
$insertNodes([image]);
image.select();
});
return true;
}
return false;
}
function createDropListener(context: EditorUiContext): (event: DragEvent) => boolean {
const editor = context.editor;
return (event: DragEvent): boolean => {
@ -138,7 +153,10 @@ function createPasteListener(context: EditorUiContext): (event: ClipboardEvent)
return false;
}
const handled = handleMediaInsert(event.clipboardData, context);
const handled =
handleImageLinkInsert(event.clipboardData, context) ||
handleMediaInsert(event.clipboardData, context);
if (handled) {
event.preventDefault();
}