From b7d85510d5f8c6d7a32befa57ed7a04d2184edf2 Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Sat, 5 Sep 2026 02:32:27 +0200 Subject: [PATCH] show error when incorrect backup password was provided --- src/Model/Global/.fileTransferModel.ts.swp | Bin 0 -> 20480 bytes src/Model/Global/fileTransferModel.ts | 2 +- src/View/Modals/dataTransferModal.tsx | 2 +- .../Global/.fileTransferViewModel.ts.swp | Bin 0 -> 20480 bytes src/ViewModel/Global/fileTransferViewModel.ts | 6 +++--- 5 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 src/Model/Global/.fileTransferModel.ts.swp create mode 100644 src/ViewModel/Global/.fileTransferViewModel.ts.swp diff --git a/src/Model/Global/.fileTransferModel.ts.swp b/src/Model/Global/.fileTransferModel.ts.swp new file mode 100644 index 0000000000000000000000000000000000000000..d1d3d56d22517cd56991f097799861414ac1d7a0 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/src/Model/Global/fileTransferModel.ts b/src/Model/Global/fileTransferModel.ts index f3143caa..605b3b8c 100644 --- a/src/Model/Global/fileTransferModel.ts +++ b/src/Model/Global/fileTransferModel.ts @@ -93,7 +93,7 @@ export default class FileTransferModel { const parsed = parse(decrypted); if (!Array.isArray(parsed)) { console.error("Canceling backup - not an array", decrypted); - return; + throw "no array"; } for (const file of parsed) { diff --git a/src/View/Modals/dataTransferModal.tsx b/src/View/Modals/dataTransferModal.tsx index 2c885b5e..ad237183 100644 --- a/src/View/Modals/dataTransferModal.tsx +++ b/src/View/Modals/dataTransferModal.tsx @@ -928,7 +928,7 @@ function ImportDecryptionDataModal( class="primary flex" on:click={fileTransferViewModel.decryptImport} toggle:disabled={ - fileTransferViewModel.cannotDecryptImport + fileTransferViewModel.importDecryptSuccessful } > { diff --git a/src/ViewModel/Global/.fileTransferViewModel.ts.swp b/src/ViewModel/Global/.fileTransferViewModel.ts.swp new file mode 100644 index 0000000000000000000000000000000000000000..b9b247686f8e572f2dda708aa9283e848992f0ad GIT binary patch literal 20480 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 this.importedFile.value == undefined, ); - cannotDecryptImport: React.State = React.createProxyState( + importDecryptSuccessful: React.State = React.createProxyState( [this.importKey], () => this.importKey.value == "", ); @@ -179,7 +179,7 @@ export default class FileTransferViewModel extends Context { const key = this.importKey.value; if (!fileString || !key) return; - this.cannotDecryptImport.value = true; + this.importDecryptSuccessful.value = true; try { await this.coreViewModel.fileTransferModel.handleBackupFile( fileString, @@ -189,7 +189,7 @@ export default class FileTransferViewModel extends Context { } catch (e) { console.error(e); this.isImportKeyCorrect.value = false; - this.cannotDecryptImport.value = false; + this.importDecryptSuccessful.value = false; } };