Skip to content

Commit

Permalink
Fix adding muliple previews in one place
Browse files Browse the repository at this point in the history
  • Loading branch information
Skalakid committed Sep 19, 2024
1 parent fa31ecf commit f6ca8e5
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/web/inputElements/inlineImage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ type DebouncePreviewItem = {
const timeoutMap = new Map<string, DebouncePreviewItem>();

function getImagePreviewElement(targetElement: HTMLMarkdownElement) {
return Array.from(targetElement?.childNodes || []).find((el) => (el as HTMLElement)?.contentEditable === 'false');
return Array.from(targetElement?.childNodes || []).find((el) => (el as HTMLElement)?.contentEditable === 'false') as HTMLMarkdownElement | undefined;
}

function createImageElement(targetNode: TreeNode, url: string, callback: (img: HTMLElement, err?: string | Event) => void) {
Expand Down Expand Up @@ -111,7 +111,10 @@ function addInlineImagePreview(currentInput: MarkdownTextInputElement, targetNod
// Update the target element if input structure was updated while the image was loading and its content haven't changed
if (!targetElement.isConnected) {
const currentElement = currentInput.querySelector(`[data-type="block"][data-id="${targetNode.orderIndex}"]`) as HTMLMarkdownElement;
if (getImagePreviewElement(currentElement)?.textContent === getImagePreviewElement(targetNode.element)?.textContent) {

const currentElementSpinner = getImagePreviewElement(currentElement);
const targetElementSpinner = getImagePreviewElement(targetNode.element);
if (currentElementSpinner && targetElementSpinner && currentElementSpinner.getAttribute('data-url') && targetElementSpinner.getAttribute('data-url')) {
targetElement = currentElement;
} else {
return; // Cancel expired image preview if the content has changed befo
Expand Down

0 comments on commit f6ca8e5

Please sign in to comment.