diff --git a/packages/editor-ui/src/components/MainHeader/WorkflowDetails.vue b/packages/editor-ui/src/components/MainHeader/WorkflowDetails.vue index 890e50c474..7c414e2fa7 100644 --- a/packages/editor-ui/src/components/MainHeader/WorkflowDetails.vue +++ b/packages/editor-ui/src/components/MainHeader/WorkflowDetails.vue @@ -475,27 +475,27 @@ export default defineComponent({ cb(saved); }, async handleFileImport(): Promise { - const reader = new FileReader(); - reader.onload = (event: ProgressEvent) => { - const data = (event.target as FileReader).result; - - let workflowData: IWorkflowDataUpdate; - try { - workflowData = JSON.parse(data as string); - } catch (error) { - this.showMessage({ - title: this.$locale.baseText('mainSidebar.showMessage.handleFileImport.title'), - message: this.$locale.baseText('mainSidebar.showMessage.handleFileImport.message'), - type: 'error', - }); - return; - } - - nodeViewEventBus.emit('importWorkflowData', { data: workflowData }); - }; - const inputRef = this.$refs.importFile as HTMLInputElement | undefined; if (inputRef?.files && inputRef.files.length !== 0) { + const reader = new FileReader(); + reader.onload = () => { + let workflowData: IWorkflowDataUpdate; + try { + workflowData = JSON.parse(reader.result as string); + } catch (error) { + this.showMessage({ + title: this.$locale.baseText('mainSidebar.showMessage.handleFileImport.title'), + message: this.$locale.baseText('mainSidebar.showMessage.handleFileImport.message'), + type: 'error', + }); + return; + } finally { + reader.onload = undefined; + inputRef.value = null; + } + + nodeViewEventBus.emit('importWorkflowData', { data: workflowData }); + }; reader.readAsText(inputRef.files[0]); } },