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:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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],
|
||||
}),
|
||||
];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
) {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user