mirror of
https://github.com/bitwarden/browser
synced 2025-12-11 13:53:34 +00:00
Fix ng select and product switcher (#15046)
* Fix ng select and product switcher * Fix story * Fix tests
This commit is contained in:
@@ -3,7 +3,6 @@ import { RouterModule } from "@angular/router";
|
|||||||
import { applicationConfig, Meta, moduleMetadata, StoryObj } from "@storybook/angular";
|
import { applicationConfig, Meta, moduleMetadata, StoryObj } from "@storybook/angular";
|
||||||
import { BehaviorSubject, firstValueFrom, Observable, of } from "rxjs";
|
import { BehaviorSubject, firstValueFrom, Observable, of } from "rxjs";
|
||||||
|
|
||||||
import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe";
|
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
||||||
@@ -18,6 +17,7 @@ import { LayoutComponent, NavigationModule } from "@bitwarden/components";
|
|||||||
// FIXME: remove `src` and fix import
|
// FIXME: remove `src` and fix import
|
||||||
// eslint-disable-next-line no-restricted-imports
|
// eslint-disable-next-line no-restricted-imports
|
||||||
import { I18nMockService } from "@bitwarden/components/src/utils/i18n-mock.service";
|
import { I18nMockService } from "@bitwarden/components/src/utils/i18n-mock.service";
|
||||||
|
import { I18nPipe } from "@bitwarden/ui-common";
|
||||||
|
|
||||||
import { ProductSwitcherService } from "../shared/product-switcher.service";
|
import { ProductSwitcherService } from "../shared/product-switcher.service";
|
||||||
|
|
||||||
@@ -109,9 +109,8 @@ export default {
|
|||||||
MockProviderService,
|
MockProviderService,
|
||||||
StoryLayoutComponent,
|
StoryLayoutComponent,
|
||||||
StoryContentComponent,
|
StoryContentComponent,
|
||||||
I18nPipe,
|
|
||||||
],
|
],
|
||||||
imports: [NavigationModule, RouterModule, LayoutComponent],
|
imports: [NavigationModule, RouterModule, LayoutComponent, I18nPipe],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: OrganizationService, useClass: MockOrganizationService },
|
{ provide: OrganizationService, useClass: MockOrganizationService },
|
||||||
{ provide: AccountService, useClass: MockAccountService },
|
{ provide: AccountService, useClass: MockAccountService },
|
||||||
@@ -119,12 +118,6 @@ export default {
|
|||||||
{ provide: SyncService, useClass: MockSyncService },
|
{ provide: SyncService, useClass: MockSyncService },
|
||||||
{ provide: PlatformUtilsService, useClass: MockPlatformUtilsService },
|
{ provide: PlatformUtilsService, useClass: MockPlatformUtilsService },
|
||||||
ProductSwitcherService,
|
ProductSwitcherService,
|
||||||
{
|
|
||||||
provide: I18nPipe,
|
|
||||||
useFactory: () => ({
|
|
||||||
transform: (key: string) => translations[key],
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
provide: I18nService,
|
provide: I18nService,
|
||||||
useFactory: () => {
|
useFactory: () => {
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { A11yModule } from "@angular/cdk/a11y";
|
|||||||
import { NgModule } from "@angular/core";
|
import { NgModule } from "@angular/core";
|
||||||
import { RouterModule } from "@angular/router";
|
import { RouterModule } from "@angular/router";
|
||||||
|
|
||||||
import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe";
|
|
||||||
import { NavigationModule } from "@bitwarden/components";
|
import { NavigationModule } from "@bitwarden/components";
|
||||||
|
import { I18nPipe } from "@bitwarden/ui-common";
|
||||||
|
|
||||||
import { SharedModule } from "../../shared";
|
import { SharedModule } from "../../shared";
|
||||||
|
|
||||||
@@ -12,13 +12,12 @@ import { ProductSwitcherContentComponent } from "./product-switcher-content.comp
|
|||||||
import { ProductSwitcherComponent } from "./product-switcher.component";
|
import { ProductSwitcherComponent } from "./product-switcher.component";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [SharedModule, A11yModule, RouterModule, NavigationModule],
|
imports: [SharedModule, A11yModule, RouterModule, NavigationModule, I18nPipe],
|
||||||
declarations: [
|
declarations: [
|
||||||
ProductSwitcherComponent,
|
ProductSwitcherComponent,
|
||||||
ProductSwitcherContentComponent,
|
ProductSwitcherContentComponent,
|
||||||
NavigationProductSwitcherComponent,
|
NavigationProductSwitcherComponent,
|
||||||
],
|
],
|
||||||
exports: [ProductSwitcherComponent, NavigationProductSwitcherComponent],
|
exports: [ProductSwitcherComponent, NavigationProductSwitcherComponent],
|
||||||
providers: [I18nPipe],
|
|
||||||
})
|
})
|
||||||
export class ProductSwitcherModule {}
|
export class ProductSwitcherModule {}
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import { ActivatedRoute, Router, convertToParamMap } from "@angular/router";
|
|||||||
import { mock, MockProxy } from "jest-mock-extended";
|
import { mock, MockProxy } from "jest-mock-extended";
|
||||||
import { Observable, firstValueFrom, of } from "rxjs";
|
import { Observable, firstValueFrom, of } from "rxjs";
|
||||||
|
|
||||||
import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe";
|
|
||||||
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||||
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
import { ProviderService } from "@bitwarden/common/admin-console/abstractions/provider.service";
|
||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { Provider } from "@bitwarden/common/admin-console/models/domain/provider";
|
import { Provider } from "@bitwarden/common/admin-console/models/domain/provider";
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||||
import { SyncService } from "@bitwarden/common/platform/sync";
|
import { SyncService } from "@bitwarden/common/platform/sync";
|
||||||
@@ -70,9 +70,9 @@ describe("ProductSwitcherService", () => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: I18nPipe,
|
provide: I18nService,
|
||||||
useValue: {
|
useValue: {
|
||||||
transform: (key: string) => key,
|
t: (id: string, p1?: string | number, p2?: string | number, p3?: string | number) => id,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import {
|
|||||||
switchMap,
|
switchMap,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe";
|
|
||||||
import {
|
import {
|
||||||
canAccessOrgAdmin,
|
canAccessOrgAdmin,
|
||||||
OrganizationService,
|
OrganizationService,
|
||||||
@@ -25,6 +24,7 @@ import { PolicyType, ProviderType } from "@bitwarden/common/admin-console/enums"
|
|||||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||||
import { getUserId } from "@bitwarden/common/auth/services/account.service";
|
import { getUserId } from "@bitwarden/common/auth/services/account.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { SyncService } from "@bitwarden/common/platform/sync";
|
import { SyncService } from "@bitwarden/common/platform/sync";
|
||||||
|
|
||||||
@@ -103,11 +103,11 @@ export class ProductSwitcherService {
|
|||||||
private providerService: ProviderService,
|
private providerService: ProviderService,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private i18n: I18nPipe,
|
|
||||||
private syncService: SyncService,
|
private syncService: SyncService,
|
||||||
private accountService: AccountService,
|
private accountService: AccountService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private policyService: PolicyService,
|
private policyService: PolicyService,
|
||||||
|
private i18nService: I18nService,
|
||||||
) {
|
) {
|
||||||
this.pollUntilSynced();
|
this.pollUntilSynced();
|
||||||
}
|
}
|
||||||
@@ -197,7 +197,7 @@ export class ProductSwitcherService {
|
|||||||
},
|
},
|
||||||
isActive: this.router.url.includes("/sm/"),
|
isActive: this.router.url.includes("/sm/"),
|
||||||
otherProductOverrides: {
|
otherProductOverrides: {
|
||||||
supportingText: this.i18n.transform("secureYourInfrastructure"),
|
supportingText: this.i18nService.t("secureYourInfrastructure"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ac: {
|
ac: {
|
||||||
@@ -222,7 +222,7 @@ export class ProductSwitcherService {
|
|||||||
marketingRoute: orgsMarketingRoute,
|
marketingRoute: orgsMarketingRoute,
|
||||||
otherProductOverrides: {
|
otherProductOverrides: {
|
||||||
name: "Share your passwords",
|
name: "Share your passwords",
|
||||||
supportingText: this.i18n.transform("protectYourFamilyOrBusiness"),
|
supportingText: this.i18nService.t("protectYourFamilyOrBusiness"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} satisfies Record<string, ProductSwitcherItem>;
|
} satisfies Record<string, ProductSwitcherItem>;
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ const devServer =
|
|||||||
'sha256-JVRXyYPueLWdwGwY9m/7u4QlZ1xeQdqUj2t8OVIzZE4='
|
'sha256-JVRXyYPueLWdwGwY9m/7u4QlZ1xeQdqUj2t8OVIzZE4='
|
||||||
'sha256-or0p3LaHetJ4FRq+flVORVFFNsOjQGWrDvX8Jf7ACWg='
|
'sha256-or0p3LaHetJ4FRq+flVORVFFNsOjQGWrDvX8Jf7ACWg='
|
||||||
'sha256-jvLh2uL2/Pq/gpvNJMaEL4C+TNhBeGadLIUyPcVRZvY='
|
'sha256-jvLh2uL2/Pq/gpvNJMaEL4C+TNhBeGadLIUyPcVRZvY='
|
||||||
'sha256-VZTcMoTEw3nbAHejvqlyyRm1Mdx+DVNgyKANjpWw0qg='
|
'sha256-EnIJNDxVnh0++RytXJOkU0sqtLDFt1nYUDOfeJ5SKxg='
|
||||||
;img-src
|
;img-src
|
||||||
'self'
|
'self'
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import {
|
|||||||
from,
|
from,
|
||||||
} from "rxjs";
|
} from "rxjs";
|
||||||
|
|
||||||
import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe";
|
|
||||||
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction";
|
||||||
import {
|
import {
|
||||||
getOrganizationById,
|
getOrganizationById,
|
||||||
@@ -100,7 +99,6 @@ export class OverviewComponent implements OnInit, OnDestroy {
|
|||||||
protected loading = true;
|
protected loading = true;
|
||||||
protected organizationEnabled = false;
|
protected organizationEnabled = false;
|
||||||
protected organization: Organization;
|
protected organization: Organization;
|
||||||
protected i18n: I18nPipe;
|
|
||||||
protected onboardingTasks$: Observable<SMOnboardingTasks>;
|
protected onboardingTasks$: Observable<SMOnboardingTasks>;
|
||||||
|
|
||||||
protected view$: Observable<{
|
protected view$: Observable<{
|
||||||
|
|||||||
Reference in New Issue
Block a user