1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-10 13:40:06 +00:00

created DesktopRoutedVaultFilterBridgeService to handle navigation for all vault filters

This commit is contained in:
Leslie Xiong
2025-12-16 13:41:03 -05:00
parent 470b0c8f38
commit 9f5dbb5e43
4 changed files with 46 additions and 7 deletions

View File

@@ -0,0 +1,39 @@
import { Injectable } from "@angular/core";
import { Router } from "@angular/router";
import {
RoutedVaultFilterService,
RoutedVaultFilterBridgeService,
RoutedVaultFilterModel,
VaultFilterServiceAbstraction as VaultFilterService,
} from "@bitwarden/vault";
/**
* Desktop-specific extension of RoutedVaultFilterBridgeService that ensures
* vault filter navigation always goes to the /new-vault route.
*/
@Injectable()
export class DesktopRoutedVaultFilterBridgeService extends RoutedVaultFilterBridgeService {
private static readonly VAULT_ROUTE = "/new-vault";
private readonly desktopRouter: Router;
private readonly desktopRoutedVaultFilterService: RoutedVaultFilterService;
constructor(
router: Router,
routedVaultFilterService: RoutedVaultFilterService,
vaultFilterService: VaultFilterService,
) {
super(router, routedVaultFilterService, vaultFilterService);
this.desktopRouter = router;
this.desktopRoutedVaultFilterService = routedVaultFilterService;
}
override navigate(filter: RoutedVaultFilterModel) {
const extras = this.desktopRoutedVaultFilterService.createRoute(filter)[1];
const vaultCommands = [DesktopRoutedVaultFilterBridgeService.VAULT_ROUTE];
// 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.desktopRouter.navigate(vaultCommands, extras);
}
}

View File

@@ -125,7 +125,6 @@ import {
VaultFilterServiceAbstraction,
VaultFilterService,
RoutedVaultFilterService,
RoutedVaultFilterBridgeService,
} from "@bitwarden/vault";
import { DesktopLoginApprovalDialogComponentService } from "../../auth/login/desktop-login-approval-dialog-component.service";
@@ -161,6 +160,7 @@ import { NativeMessagingService } from "../../services/native-messaging.service"
import { SearchBarService } from "../layout/search/search-bar.service";
import { DesktopFileDownloadService } from "./desktop-file-download.service";
import { DesktopRoutedVaultFilterBridgeService } from "./desktop-routed-vault-filter-bridge.service";
import { InitService } from "./init.service";
import { NativeMessagingManifestService } from "./native-messaging-manifest.service";
import { DesktopSetInitialPasswordService } from "./set-initial-password/desktop-set-initial-password.service";
@@ -536,8 +536,8 @@ const safeProviders: SafeProvider[] = [
deps: [ActivatedRoute],
}),
safeProvider({
provide: RoutedVaultFilterBridgeService,
useClass: RoutedVaultFilterBridgeService,
provide: DesktopRoutedVaultFilterBridgeService,
useClass: DesktopRoutedVaultFilterBridgeService,
deps: [Router, RoutedVaultFilterService, VaultFilterServiceAbstraction],
}),
];

View File

@@ -20,10 +20,10 @@ import {
FolderFilter,
VaultFilter,
VaultFilterServiceAbstraction as VaultFilterService,
RoutedVaultFilterBridgeService,
AddEditFolderDialogComponent,
} from "@bitwarden/vault";
import { DesktopRoutedVaultFilterBridgeService } from "../../../../app/services/desktop-routed-vault-filter-bridge.service";
import { DesktopPremiumUpgradePromptService } from "../../../../services/desktop-premium-upgrade-prompt.service";
import { FolderFilterComponent } from "./filters/folder-filter.component";
@@ -53,7 +53,7 @@ import { TypeFilterComponent } from "./filters/type-filter.component";
],
})
export class VaultFilterComponent implements OnInit {
private routedVaultFilterBridgeService = inject(RoutedVaultFilterBridgeService);
private routedVaultFilterBridgeService = inject(DesktopRoutedVaultFilterBridgeService);
private vaultFilterService: VaultFilterService = inject(VaultFilterService);
private accountService: AccountService = inject(AccountService);
private cipherArchiveService: CipherArchiveService = inject(CipherArchiveService);

View File

@@ -82,11 +82,11 @@ import {
CipherFormComponent,
ArchiveCipherUtilitiesService,
VaultFilter,
RoutedVaultFilterBridgeService,
VaultFilterServiceAbstraction as VaultFilterService,
} from "@bitwarden/vault";
import { SearchBarService } from "../../../app/layout/search/search-bar.service";
import { DesktopRoutedVaultFilterBridgeService } from "../../../app/services/desktop-routed-vault-filter-bridge.service";
import { DesktopCredentialGenerationService } from "../../../services/desktop-cipher-form-generator.service";
import { DesktopPremiumUpgradePromptService } from "../../../services/desktop-premium-upgrade-prompt.service";
import { invokeMenu, RendererMenuItem } from "../../../utils";
@@ -221,7 +221,7 @@ export class VaultComponent implements OnInit, OnDestroy, CopyClickListener {
private cipherArchiveService: CipherArchiveService,
private policyService: PolicyService,
private archiveCipherUtilitiesService: ArchiveCipherUtilitiesService,
private routedVaultFilterBridgeService: RoutedVaultFilterBridgeService,
private routedVaultFilterBridgeService: DesktopRoutedVaultFilterBridgeService,
private vaultFilterService: VaultFilterService,
) {}