From ab47d10038a8cb2a0961bcbdb5963a1f53dbfbb5 Mon Sep 17 00:00:00 2001 From: jaasen-livefront Date: Thu, 20 Nov 2025 16:48:33 -0800 Subject: [PATCH] fixes to folder --- .../components/folder-add-edit.component.ts | 2 +- .../common/src/models/export/folder.export.ts | 2 +- libs/common/src/vault/models/domain/folder.ts | 29 +++++++------------ .../src/vault/models/view/folder.view.ts | 10 ++++--- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/libs/angular/src/vault/components/folder-add-edit.component.ts b/libs/angular/src/vault/components/folder-add-edit.component.ts index 31c26b4625f..486585b810c 100644 --- a/libs/angular/src/vault/components/folder-add-edit.component.ts +++ b/libs/angular/src/vault/components/folder-add-edit.component.ts @@ -58,7 +58,7 @@ export class FolderAddEditComponent implements OnInit { async submit(): Promise { this.folder.name = this.formGroup.controls.name.value; - if (this.folder.name === "") { + if (this.folder.name == null || this.folder.name === "") { this.toastService.showToast({ variant: "error", title: this.i18nService.t("errorOccurred"), diff --git a/libs/common/src/models/export/folder.export.ts b/libs/common/src/models/export/folder.export.ts index 803dd5d2985..1bffcee8c2d 100644 --- a/libs/common/src/models/export/folder.export.ts +++ b/libs/common/src/models/export/folder.export.ts @@ -19,7 +19,7 @@ export class FolderExport { } static toDomain(req: FolderExport, domain = new FolderDomain()) { - domain.name = req.name ? new EncString(req.name) : undefined; + domain.name = new EncString(req.name); return domain; } diff --git a/libs/common/src/vault/models/domain/folder.ts b/libs/common/src/vault/models/domain/folder.ts index 1b75a98b480..410d976253a 100644 --- a/libs/common/src/vault/models/domain/folder.ts +++ b/libs/common/src/vault/models/domain/folder.ts @@ -8,26 +8,16 @@ import { FolderData } from "../data/folder.data"; import { FolderView } from "../view/folder.view"; export class Folder extends Domain { - id?: string; - name?: EncString; - revisionDate: Date; + id: string = ""; + name: EncString = new EncString(""); + revisionDate: Date = new Date(); constructor(obj?: FolderData) { super(); if (obj == null) { - this.revisionDate = new Date(); return; } - this.buildDomainModel( - this, - obj, - { - id: null, - name: null, - }, - ["id"], - ); this.name = new EncString(obj.name); this.revisionDate = new Date(obj.revisionDate); } @@ -44,7 +34,7 @@ export class Folder extends Domain { folderView.id = this.id ?? ""; folderView.revisionDate = this.revisionDate; try { - folderView.name = await encryptService.decryptString(this.name ?? new EncString(""), key); + folderView.name = await encryptService.decryptString(this.name, key); } catch (e) { // Note: This should be replaced by the owning team with appropriate, domain-specific behavior. // eslint-disable-next-line no-console @@ -58,10 +48,11 @@ export class Folder extends Domain { if (obj == null) { return null; } - return new Folder({ - name: obj.name ?? "", - revisionDate: obj.revisionDate, - id: obj.id ?? "", - }); + + const folder = new Folder(); + folder.id = obj.id; + folder.name = EncString.fromJSON(obj.name); + folder.revisionDate = new Date(obj.revisionDate); + return folder; } } diff --git a/libs/common/src/vault/models/view/folder.view.ts b/libs/common/src/vault/models/view/folder.view.ts index f397b8b4dbc..6806143de5b 100644 --- a/libs/common/src/vault/models/view/folder.view.ts +++ b/libs/common/src/vault/models/view/folder.view.ts @@ -10,14 +10,14 @@ export class FolderView implements View, ITreeNodeObject { name: string = ""; revisionDate: Date; - constructor(f?: Folder | DecryptedObject) { + constructor(f?: Folder | DecryptedObject) { if (!f) { this.revisionDate = new Date(); return; } - this.id = f.id ?? ""; - this.name = f.name?.decryptedValue ?? ""; + this.id = f.id; + this.name = f.name.toString(); this.revisionDate = f.revisionDate; } @@ -25,7 +25,9 @@ export class FolderView implements View, ITreeNodeObject { const folderView = new FolderView(); folderView.id = obj.id ?? ""; folderView.name = obj.name ?? ""; - folderView.revisionDate = new Date(obj.revisionDate); + if (obj.revisionDate != null) { + folderView.revisionDate = new Date(obj.revisionDate); + } return folderView; } }