From b580f90d0fcf2199b47a4f4916f713edf4246d33 Mon Sep 17 00:00:00 2001 From: nd0ut Date: Wed, 29 Oct 2025 14:20:42 +0300 Subject: [PATCH 1/3] fix(file-item): hide waiting for social source hint after success upload --- src/blocks/FileItem/FileItem.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/blocks/FileItem/FileItem.ts b/src/blocks/FileItem/FileItem.ts index 65095aa63..0e71c61b3 100644 --- a/src/blocks/FileItem/FileItem.ts +++ b/src/blocks/FileItem/FileItem.ts @@ -142,6 +142,7 @@ export class FileItem extends FileItemConfig { const errorText = entry.getValue('errors')?.[0]?.message; const source = entry.getValue('source'); const externalUrl = entry.getValue('externalUrl'); + const isFinished = state === FileItemState.FINISHED; const isUploading = state === FileItemState.UPLOADING; const isQueuedForUploading = state === FileItemState.QUEUED_UPLOADING; const isQueuedForValidation = state === FileItemState.QUEUED_VALIDATION; @@ -151,7 +152,7 @@ export class FileItem extends FileItemConfig { if (errorText) { hint = ''; - } else if (externalUrl && source && Object.values(ExternalUploadSource).includes(source)) { + } else if (!isFinished && externalUrl && source && Object.values(ExternalUploadSource).includes(source)) { hint = this.l10n('waiting-for', { source: this.l10n(`src-type-${source}`) }); } From 03438ccae9ebbc4d98fb047b32ee2fa48a6cba53 Mon Sep 17 00:00:00 2001 From: nd0ut Date: Wed, 29 Oct 2025 14:21:29 +0300 Subject: [PATCH 2/3] fix(social-source): use specified target origin for social source postMessage call --- src/blocks/ExternalSource/ExternalSource.ts | 2 +- src/blocks/ExternalSource/MessageBridge.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/blocks/ExternalSource/ExternalSource.ts b/src/blocks/ExternalSource/ExternalSource.ts index 69411615b..2e4c5916b 100644 --- a/src/blocks/ExternalSource/ExternalSource.ts +++ b/src/blocks/ExternalSource/ExternalSource.ts @@ -267,7 +267,7 @@ export class ExternalSource extends UploaderBlock { this._messageBridge?.destroy(); - this._messageBridge = new MessageBridge(iframe.contentWindow); + this._messageBridge = new MessageBridge(iframe.contentWindow, () => this.cfg.socialBaseUrl); this._messageBridge.on('selected-files-change', this.handleSelectedFilesChange.bind(this)); this._messageBridge.on('toolbar-state-change', this.handleToolbarStateChange.bind(this)); diff --git a/src/blocks/ExternalSource/MessageBridge.ts b/src/blocks/ExternalSource/MessageBridge.ts index 8b8bd82e5..6b7f18a46 100644 --- a/src/blocks/ExternalSource/MessageBridge.ts +++ b/src/blocks/ExternalSource/MessageBridge.ts @@ -15,12 +15,15 @@ const isWhitelistedMessage = (message: unknown): message is InputMessageMap[Inpu }; export class MessageBridge { - _handlerMap = new Map>>(); + private _handlerMap = new Map>>(); - _context: Window; + private _context: Window; - constructor(context: Window) { + private _getTargetOrigin: () => string; + + constructor(context: Window, getTargetOrigin: () => string) { this._context = context; + this._getTargetOrigin = getTargetOrigin; window.addEventListener('message', this._handleMessage); } @@ -52,7 +55,8 @@ export class MessageBridge { } send(message: OutputMessage) { - this._context.postMessage(message, '*'); + const targetOrigin = this._getTargetOrigin(); + this._context.postMessage(message, targetOrigin); } destroy() { From cd9aa922630e00abedab2c9e950ee28b2e4b02a1 Mon Sep 17 00:00:00 2001 From: nd0ut Date: Wed, 29 Oct 2025 14:22:03 +0300 Subject: [PATCH 3/3] fix(social-source): toggle done button visibility along with selection status block --- src/blocks/ExternalSource/ExternalSource.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/blocks/ExternalSource/ExternalSource.ts b/src/blocks/ExternalSource/ExternalSource.ts index 2e4c5916b..9982f7723 100644 --- a/src/blocks/ExternalSource/ExternalSource.ts +++ b/src/blocks/ExternalSource/ExternalSource.ts @@ -191,11 +191,8 @@ export class ExternalSource extends UploaderBlock { couldSelectAll: message.selectedCount < message.total, couldDeselectAll: message.selectedCount === message.total, selectedList: message.selectedFiles, + showDoneBtn: message.total > 0, }); - - if (!this.$.showDoneBtn && message.isReady) { - this.$.showDoneBtn = true; - } } private handleIframeLoad(): void {