diff --git a/src/blocks/ExternalSource/ExternalSource.ts b/src/blocks/ExternalSource/ExternalSource.ts index 69411615..9982f772 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 { @@ -267,7 +264,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 8b8bd82e..6b7f18a4 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() { diff --git a/src/blocks/FileItem/FileItem.ts b/src/blocks/FileItem/FileItem.ts index 65095aa6..0e71c61b 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}`) }); }