Composer: Fix pasting images inline (#5445)
This commit is contained in:
parent
6174ffaf3e
commit
af472d0fd4
@ -20,6 +20,9 @@ const TYPE_HTML = 'text/html';
|
|||||||
const DOCUMENT_TYPE_WORD = 'urn:schemas-microsoft-com:office:word';
|
const DOCUMENT_TYPE_WORD = 'urn:schemas-microsoft-com:office:word';
|
||||||
const NAMESPACE_PREFIX_WORD = 'xmlns:w';
|
const NAMESPACE_PREFIX_WORD = 'xmlns:w';
|
||||||
|
|
||||||
|
const VALID_TARGET_IDS = new Set([EDITABLE_INPUT_ID, EDITABLE_INPUT_MODAL_ID, EDITABLE_STORY_INPUT_ID]);
|
||||||
|
const CLOSEST_CONTENT_EDITABLE_SELECTOR = 'div[contenteditable]';
|
||||||
|
|
||||||
const useClipboardPaste = (
|
const useClipboardPaste = (
|
||||||
isActive: boolean,
|
isActive: boolean,
|
||||||
insertTextAndUpdateCursor: (text: ApiFormattedText, inputId?: string) => void,
|
insertTextAndUpdateCursor: (text: ApiFormattedText, inputId?: string) => void,
|
||||||
@ -42,8 +45,15 @@ const useClipboardPaste = (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const input = document.activeElement;
|
const input = (e.target as HTMLElement)?.closest(CLOSEST_CONTENT_EDITABLE_SELECTOR);
|
||||||
if (input && ![EDITABLE_INPUT_ID, EDITABLE_INPUT_MODAL_ID, EDITABLE_STORY_INPUT_ID].includes(input.id)) {
|
if (input && !VALID_TARGET_IDS.has(input.id)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
// Some extensions can trigger paste into their panels without focus
|
||||||
|
if (document.activeElement !== input) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +72,6 @@ const useClipboardPaste = (
|
|||||||
const { items } = e.clipboardData;
|
const { items } = e.clipboardData;
|
||||||
let files: File[] | undefined = [];
|
let files: File[] | undefined = [];
|
||||||
|
|
||||||
e.preventDefault();
|
|
||||||
if (items.length > 0) {
|
if (items.length > 0) {
|
||||||
files = await getFilesFromDataTransferItems(items);
|
files = await getFilesFromDataTransferItems(items);
|
||||||
if (editedMessage) {
|
if (editedMessage) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user