mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-14 10:26:19 +01:00
[PM-14369] Hide account switcher if on login page and not logged into any accounts (#11827)
* Add hasLoggedInAccount to check if there is a logged in account * Update Storybook providers * Revert "Update Storybook providers" This reverts commit646506ab95
. * Reapply "Update Storybook providers" This reverts commitd86744a80b
. * Add story for HasLoggedInAccountExample * Remove unused imports
This commit is contained in:
parent
414bdde232
commit
a959620a11
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
<ng-container slot="end">
|
<ng-container slot="end">
|
||||||
<app-pop-out></app-pop-out>
|
<app-pop-out></app-pop-out>
|
||||||
<app-current-account *ngIf="showAcctSwitcher"></app-current-account>
|
<app-current-account *ngIf="showAcctSwitcher && hasLoggedInAccount"></app-current-account>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</popup-header>
|
</popup-header>
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import { PopOutComponent } from "../../../platform/popup/components/pop-out.comp
|
|||||||
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
|
import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component";
|
||||||
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
|
import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component";
|
||||||
import { CurrentAccountComponent } from "../account-switching/current-account.component";
|
import { CurrentAccountComponent } from "../account-switching/current-account.component";
|
||||||
|
import { AccountSwitcherService } from "../account-switching/services/account-switcher.service";
|
||||||
|
|
||||||
import { ExtensionBitwardenLogo } from "./extension-bitwarden-logo.icon";
|
import { ExtensionBitwardenLogo } from "./extension-bitwarden-logo.icon";
|
||||||
|
|
||||||
@ -50,6 +51,7 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
|
|||||||
protected pageIcon: Icon;
|
protected pageIcon: Icon;
|
||||||
protected showReadonlyHostname: boolean;
|
protected showReadonlyHostname: boolean;
|
||||||
protected maxWidth: "md" | "3xl";
|
protected maxWidth: "md" | "3xl";
|
||||||
|
protected hasLoggedInAccount: boolean = false;
|
||||||
|
|
||||||
protected theme: string;
|
protected theme: string;
|
||||||
protected logo = ExtensionBitwardenLogo;
|
protected logo = ExtensionBitwardenLogo;
|
||||||
@ -59,6 +61,7 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
|
|||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private extensionAnonLayoutWrapperDataService: AnonLayoutWrapperDataService,
|
private extensionAnonLayoutWrapperDataService: AnonLayoutWrapperDataService,
|
||||||
|
private accountSwitcherService: AccountSwitcherService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async ngOnInit(): Promise<void> {
|
async ngOnInit(): Promise<void> {
|
||||||
@ -68,6 +71,12 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy {
|
|||||||
// Listen for page changes and update the page data appropriately
|
// Listen for page changes and update the page data appropriately
|
||||||
this.listenForPageDataChanges();
|
this.listenForPageDataChanges();
|
||||||
this.listenForServiceDataChanges();
|
this.listenForServiceDataChanges();
|
||||||
|
|
||||||
|
this.accountSwitcherService.availableAccounts$
|
||||||
|
.pipe(takeUntil(this.destroy$))
|
||||||
|
.subscribe((accounts) => {
|
||||||
|
this.hasLoggedInAccount = accounts.some((account) => account.id !== "addAccount");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private listenForPageDataChanges() {
|
private listenForPageDataChanges() {
|
||||||
|
@ -27,6 +27,7 @@ import { ButtonModule, I18nMockService } from "@bitwarden/components";
|
|||||||
|
|
||||||
import { RegistrationCheckEmailIcon } from "../../../../../../libs/auth/src/angular/icons/registration-check-email.icon";
|
import { RegistrationCheckEmailIcon } from "../../../../../../libs/auth/src/angular/icons/registration-check-email.icon";
|
||||||
import { PopupRouterCacheService } from "../../../platform/popup/view-cache/popup-router-cache.service";
|
import { PopupRouterCacheService } from "../../../platform/popup/view-cache/popup-router-cache.service";
|
||||||
|
import { AccountSwitcherService } from "../account-switching/services/account-switcher.service";
|
||||||
|
|
||||||
import { ExtensionAnonLayoutWrapperDataService } from "./extension-anon-layout-wrapper-data.service";
|
import { ExtensionAnonLayoutWrapperDataService } from "./extension-anon-layout-wrapper-data.service";
|
||||||
import {
|
import {
|
||||||
@ -45,6 +46,7 @@ const decorators = (options: {
|
|||||||
applicationVersion?: string;
|
applicationVersion?: string;
|
||||||
clientType?: ClientType;
|
clientType?: ClientType;
|
||||||
hostName?: string;
|
hostName?: string;
|
||||||
|
accounts?: any[];
|
||||||
}) => {
|
}) => {
|
||||||
return [
|
return [
|
||||||
componentWrapperDecorator(
|
componentWrapperDecorator(
|
||||||
@ -83,6 +85,13 @@ const decorators = (options: {
|
|||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: AccountSwitcherService,
|
||||||
|
useValue: {
|
||||||
|
availableAccounts$: of(options.accounts || []),
|
||||||
|
SPECIAL_ADD_ACCOUNT_ID: "addAccount",
|
||||||
|
} as Partial<AccountSwitcherService>,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
provide: AuthService,
|
provide: AuthService,
|
||||||
useValue: {
|
useValue: {
|
||||||
@ -300,3 +309,64 @@ export const DynamicContentExample: Story = {
|
|||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const HasLoggedInAccountExample: Story = {
|
||||||
|
render: (args) => ({
|
||||||
|
props: args,
|
||||||
|
template: "<router-outlet></router-outlet>",
|
||||||
|
}),
|
||||||
|
decorators: decorators({
|
||||||
|
components: [DefaultPrimaryOutletExampleComponent],
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
path: "**",
|
||||||
|
redirectTo: "has-logged-in-account",
|
||||||
|
pathMatch: "full",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: ExtensionAnonLayoutWrapperComponent,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "has-logged-in-account",
|
||||||
|
data: {
|
||||||
|
hasLoggedInAccount: true,
|
||||||
|
showAcctSwitcher: true,
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: DefaultPrimaryOutletExampleComponent,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: DefaultSecondaryOutletExampleComponent,
|
||||||
|
outlet: "secondary",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: DefaultEnvSelectorOutletExampleComponent,
|
||||||
|
outlet: "environment-selector",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
accounts: [
|
||||||
|
{
|
||||||
|
name: "Test User",
|
||||||
|
email: "testuser@bitwarden.com",
|
||||||
|
id: "123e4567-e89b-12d3-a456-426614174000",
|
||||||
|
server: "bitwarden.com",
|
||||||
|
status: 2,
|
||||||
|
isActive: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "addAccount",
|
||||||
|
id: "addAccount",
|
||||||
|
isActive: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user