[AC-1999] Fix deleting collections from collection dialog (#8647)

* [AC-1999] Fix null check

this.collection can be both null or unassigned and `!= null` will handle both cases.

* [AC-1999] Navigate away when selected collection is deleted

---------

Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
This commit is contained in:
Shane Melton 2024-04-22 09:32:44 -07:00 committed by GitHub
parent 100b43dd8f
commit b395cb40a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 8 deletions

View File

@ -679,6 +679,14 @@ export class VaultComponent implements OnInit, OnDestroy {
} else if (result.action === CollectionDialogAction.Deleted) {
await this.collectionService.delete(result.collection?.id);
this.refresh();
// Navigate away if we deleted the collection we were viewing
if (this.selectedCollection?.node.id === c?.id) {
void this.router.navigate([], {
queryParams: { collectionId: this.selectedCollection.parent?.node.id ?? null },
queryParamsHandling: "merge",
replaceUrl: true,
});
}
}
}
@ -710,9 +718,7 @@ export class VaultComponent implements OnInit, OnDestroy {
);
// Navigate away if we deleted the collection we were viewing
if (this.selectedCollection?.node.id === collection.id) {
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.router.navigate([], {
void this.router.navigate([], {
queryParams: { collectionId: this.selectedCollection.parent?.node.id ?? null },
queryParamsHandling: "merge",
replaceUrl: true,

View File

@ -80,7 +80,7 @@ export class VaultHeaderComponent implements OnInit {
? this.i18nService.t("collections").toLowerCase()
: this.i18nService.t("vault").toLowerCase();
if (this.collection !== undefined) {
if (this.collection != null) {
return this.collection.node.name;
}

View File

@ -958,11 +958,9 @@ export class VaultComponent implements OnInit, OnDestroy {
this.i18nService.t("deletedCollectionId", collection.name),
);
// Navigate away if we deleted the colletion we were viewing
// Navigate away if we deleted the collection we were viewing
if (this.selectedCollection?.node.id === collection.id) {
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.router.navigate([], {
void this.router.navigate([], {
queryParams: { collectionId: this.selectedCollection.parent?.node.id ?? null },
queryParamsHandling: "merge",
replaceUrl: true,
@ -1095,6 +1093,18 @@ export class VaultComponent implements OnInit, OnDestroy {
result.action === CollectionDialogAction.Deleted
) {
this.refresh();
// If we deleted the selected collection, navigate up/away
if (
result.action === CollectionDialogAction.Deleted &&
this.selectedCollection?.node.id === c?.id
) {
void this.router.navigate([], {
queryParams: { collectionId: this.selectedCollection.parent?.node.id ?? null },
queryParamsHandling: "merge",
replaceUrl: true,
});
}
}
}