From 46a2af38a0db5b72f9b5125788d7588d2ca74f59 Mon Sep 17 00:00:00 2001 From: Jordan Aasen <166539328+jaasen-livefront@users.noreply.github.com> Date: Thu, 19 Feb 2026 09:29:54 -0800 Subject: [PATCH] [PM-31974] - Vault Welcome dialog (#18960) * premium upgrade prompt and onboarding dialog * finalize onboard vault dialog * vault welcome dialog no ext * finish welcome dialog prompt * revert changes to unified upgrade prompt service * rename component * rename feature flag * add welcome dialog service * fix tests * fix footer position in welcome dialog * present dialog in order * fix tests * fix padding --- apps/browser/src/_locales/en/messages.json | 3 + .../vault-welcome-dialog.component.html | 27 ++++ .../vault-welcome-dialog.component.spec.ts | 87 +++++++++++++ .../vault-welcome-dialog.component.ts | 69 ++++++++++ .../services/web-vault-prompt.service.spec.ts | 21 ++- .../services/web-vault-prompt.service.ts | 11 +- .../services/welcome-dialog.service.spec.ts | 123 ++++++++++++++++++ .../vault/services/welcome-dialog.service.ts | 72 ++++++++++ .../web/src/images/welcome-dialog-graphic.png | Bin 0 -> 95551 bytes apps/web/src/locales/en/messages.json | 12 ++ libs/common/src/enums/feature-flag.enum.ts | 2 + libs/state/src/core/state-definitions.ts | 3 + 12 files changed, 425 insertions(+), 5 deletions(-) create mode 100644 apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.html create mode 100644 apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.spec.ts create mode 100644 apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.ts create mode 100644 apps/web/src/app/vault/services/welcome-dialog.service.spec.ts create mode 100644 apps/web/src/app/vault/services/welcome-dialog.service.ts create mode 100644 apps/web/src/images/welcome-dialog-graphic.png diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json index fbfaa17a87d..51ca51960d7 100644 --- a/apps/browser/src/_locales/en/messages.json +++ b/apps/browser/src/_locales/en/messages.json @@ -2860,6 +2860,9 @@ "reviewAtRiskLoginSlideImgAltPeriod": { "message": "Illustration of a list of logins that are at-risk." }, + "welcomeDialogGraphicAlt": { + "message": "Illustration of the layout of the Bitwarden vault page." + }, "generatePasswordSlideDesc": { "message": "Quickly generate a strong, unique password with the Bitwarden autofill menu on the at-risk site.", "description": "Description of the generate password slide on the at-risk password page carousel" diff --git a/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.html b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.html new file mode 100644 index 00000000000..3304fa3e3cc --- /dev/null +++ b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.html @@ -0,0 +1,27 @@ + +
+ +
+
+

+ {{ "vaultWelcomeDialogTitle" | i18n }} +

+

+ {{ "vaultWelcomeDialogDescription" | i18n }} +

+
+
+
+
+ + +
+
diff --git a/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.spec.ts b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.spec.ts new file mode 100644 index 00000000000..bc0142b374d --- /dev/null +++ b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.spec.ts @@ -0,0 +1,87 @@ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { BehaviorSubject } from "rxjs"; + +import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; +import { UserId } from "@bitwarden/common/types/guid"; +import { DialogRef } from "@bitwarden/components"; +import { StateProvider } from "@bitwarden/state"; + +import { + VaultWelcomeDialogComponent, + VaultWelcomeDialogResult, +} from "./vault-welcome-dialog.component"; + +describe("VaultWelcomeDialogComponent", () => { + let component: VaultWelcomeDialogComponent; + let fixture: ComponentFixture; + + const mockUserId = "user-123" as UserId; + const activeAccount$ = new BehaviorSubject({ + id: mockUserId, + } as Account); + const setUserState = jest.fn().mockResolvedValue([mockUserId, true]); + const close = jest.fn(); + + beforeEach(async () => { + jest.clearAllMocks(); + + await TestBed.configureTestingModule({ + imports: [VaultWelcomeDialogComponent], + providers: [ + { provide: AccountService, useValue: { activeAccount$ } }, + { provide: StateProvider, useValue: { setUserState } }, + { provide: DialogRef, useValue: { close } }, + { provide: I18nService, useValue: { t: (key: string) => key } }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(VaultWelcomeDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + describe("onDismiss", () => { + it("should set acknowledged state and close with Dismissed result", async () => { + await component["onDismiss"](); + + expect(setUserState).toHaveBeenCalledWith( + expect.objectContaining({ key: "vaultWelcomeDialogAcknowledged" }), + true, + mockUserId, + ); + expect(close).toHaveBeenCalledWith(VaultWelcomeDialogResult.Dismissed); + }); + + it("should throw if no active account", async () => { + activeAccount$.next(null); + + await expect(component["onDismiss"]()).rejects.toThrow("Null or undefined account"); + + expect(setUserState).not.toHaveBeenCalled(); + }); + }); + + describe("onPrimaryCta", () => { + it("should set acknowledged state and close with GetStarted result", async () => { + activeAccount$.next({ id: mockUserId } as Account); + + await component["onPrimaryCta"](); + + expect(setUserState).toHaveBeenCalledWith( + expect.objectContaining({ key: "vaultWelcomeDialogAcknowledged" }), + true, + mockUserId, + ); + expect(close).toHaveBeenCalledWith(VaultWelcomeDialogResult.GetStarted); + }); + + it("should throw if no active account", async () => { + activeAccount$.next(null); + + await expect(component["onPrimaryCta"]()).rejects.toThrow("Null or undefined account"); + + expect(setUserState).not.toHaveBeenCalled(); + }); + }); +}); diff --git a/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.ts b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.ts new file mode 100644 index 00000000000..d43ea5165f7 --- /dev/null +++ b/apps/web/src/app/vault/components/vault-welcome-dialog/vault-welcome-dialog.component.ts @@ -0,0 +1,69 @@ +import { CommonModule } from "@angular/common"; +import { ChangeDetectionStrategy, Component, inject } from "@angular/core"; +import { firstValueFrom } from "rxjs"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { getUserId } from "@bitwarden/common/auth/services/account.service"; +import { + ButtonModule, + DialogModule, + DialogRef, + DialogService, + TypographyModule, + CenterPositionStrategy, +} from "@bitwarden/components"; +import { StateProvider, UserKeyDefinition, VAULT_WELCOME_DIALOG_DISK } from "@bitwarden/state"; + +export const VaultWelcomeDialogResult = { + Dismissed: "dismissed", + GetStarted: "getStarted", +} as const; + +export type VaultWelcomeDialogResult = + (typeof VaultWelcomeDialogResult)[keyof typeof VaultWelcomeDialogResult]; + +const VAULT_WELCOME_DIALOG_ACKNOWLEDGED_KEY = new UserKeyDefinition( + VAULT_WELCOME_DIALOG_DISK, + "vaultWelcomeDialogAcknowledged", + { + deserializer: (value) => value, + clearOn: [], + }, +); + +@Component({ + selector: "app-vault-welcome-dialog", + templateUrl: "./vault-welcome-dialog.component.html", + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [CommonModule, DialogModule, ButtonModule, TypographyModule, JslibModule], +}) +export class VaultWelcomeDialogComponent { + private accountService = inject(AccountService); + private stateProvider = inject(StateProvider); + + constructor(private dialogRef: DialogRef) {} + + protected async onDismiss(): Promise { + await this.setAcknowledged(); + this.dialogRef.close(VaultWelcomeDialogResult.Dismissed); + } + + protected async onPrimaryCta(): Promise { + await this.setAcknowledged(); + this.dialogRef.close(VaultWelcomeDialogResult.GetStarted); + } + + private async setAcknowledged(): Promise { + const userId = await firstValueFrom(this.accountService.activeAccount$.pipe(getUserId)); + await this.stateProvider.setUserState(VAULT_WELCOME_DIALOG_ACKNOWLEDGED_KEY, true, userId); + } + + static open(dialogService: DialogService): DialogRef { + return dialogService.open(VaultWelcomeDialogComponent, { + disableClose: true, + positionStrategy: new CenterPositionStrategy(), + }); + } +} diff --git a/apps/web/src/app/vault/services/web-vault-prompt.service.spec.ts b/apps/web/src/app/vault/services/web-vault-prompt.service.spec.ts index a224b8e7c4b..eb72c80fe04 100644 --- a/apps/web/src/app/vault/services/web-vault-prompt.service.spec.ts +++ b/apps/web/src/app/vault/services/web-vault-prompt.service.spec.ts @@ -7,7 +7,7 @@ import { PolicyService } from "@bitwarden/common/admin-console/abstractions/poli import { PolicyType } from "@bitwarden/common/admin-console/enums"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { Policy } from "@bitwarden/common/admin-console/models/domain/policy"; -import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { UserId } from "@bitwarden/common/types/guid"; import { DialogRef, DialogService } from "@bitwarden/components"; @@ -21,6 +21,7 @@ import { import { UnifiedUpgradePromptService } from "../../billing/individual/upgrade/services"; import { WebVaultPromptService } from "./web-vault-prompt.service"; +import { WelcomeDialogService } from "./welcome-dialog.service"; describe("WebVaultPromptService", () => { let service: WebVaultPromptService; @@ -38,20 +39,33 @@ describe("WebVaultPromptService", () => { ); const upsertAutoConfirm = jest.fn().mockResolvedValue(undefined); const organizations$ = jest.fn().mockReturnValue(of([])); - const displayUpgradePromptConditionally = jest.fn().mockResolvedValue(undefined); + const displayUpgradePromptConditionally = jest.fn().mockResolvedValue(false); const enforceOrganizationDataOwnership = jest.fn().mockResolvedValue(undefined); + const conditionallyShowWelcomeDialog = jest.fn().mockResolvedValue(false); const logError = jest.fn(); + let activeAccount$: BehaviorSubject; + + function createAccount(overrides: Partial = {}): Account { + return { + id: mockUserId, + creationDate: new Date(), + ...overrides, + } as Account; + } + beforeEach(() => { jest.clearAllMocks(); + activeAccount$ = new BehaviorSubject(createAccount()); + TestBed.configureTestingModule({ providers: [ WebVaultPromptService, { provide: UnifiedUpgradePromptService, useValue: { displayUpgradePromptConditionally } }, { provide: VaultItemsTransferService, useValue: { enforceOrganizationDataOwnership } }, { provide: PolicyService, useValue: { policies$ } }, - { provide: AccountService, useValue: { activeAccount$: of({ id: mockUserId }) } }, + { provide: AccountService, useValue: { activeAccount$ } }, { provide: AutomaticUserConfirmationService, useValue: { configuration$: configurationAutoConfirm$, upsert: upsertAutoConfirm }, @@ -60,6 +74,7 @@ describe("WebVaultPromptService", () => { { provide: ConfigService, useValue: { getFeatureFlag$ } }, { provide: DialogService, useValue: { open } }, { provide: LogService, useValue: { error: logError } }, + { provide: WelcomeDialogService, useValue: { conditionallyShowWelcomeDialog } }, ], }); diff --git a/apps/web/src/app/vault/services/web-vault-prompt.service.ts b/apps/web/src/app/vault/services/web-vault-prompt.service.ts index 1774bfcc085..4c4e7a3fe78 100644 --- a/apps/web/src/app/vault/services/web-vault-prompt.service.ts +++ b/apps/web/src/app/vault/services/web-vault-prompt.service.ts @@ -20,6 +20,8 @@ import { } from "../../admin-console/organizations/policies"; import { UnifiedUpgradePromptService } from "../../billing/individual/upgrade/services"; +import { WelcomeDialogService } from "./welcome-dialog.service"; + @Injectable() export class WebVaultPromptService { private unifiedUpgradePromptService = inject(UnifiedUpgradePromptService); @@ -31,6 +33,7 @@ export class WebVaultPromptService { private configService = inject(ConfigService); private dialogService = inject(DialogService); private logService = inject(LogService); + private welcomeDialogService = inject(WelcomeDialogService); private userId$ = this.accountService.activeAccount$.pipe(getUserId); @@ -46,9 +49,13 @@ export class WebVaultPromptService { async conditionallyPromptUser() { const userId = await firstValueFrom(this.userId$); - void this.unifiedUpgradePromptService.displayUpgradePromptConditionally(); + if (await this.unifiedUpgradePromptService.displayUpgradePromptConditionally()) { + return; + } - void this.vaultItemTransferService.enforceOrganizationDataOwnership(userId); + await this.vaultItemTransferService.enforceOrganizationDataOwnership(userId); + + await this.welcomeDialogService.conditionallyShowWelcomeDialog(); this.checkForAutoConfirm(); } diff --git a/apps/web/src/app/vault/services/welcome-dialog.service.spec.ts b/apps/web/src/app/vault/services/welcome-dialog.service.spec.ts new file mode 100644 index 00000000000..752514ca066 --- /dev/null +++ b/apps/web/src/app/vault/services/welcome-dialog.service.spec.ts @@ -0,0 +1,123 @@ +import { TestBed } from "@angular/core/testing"; +import { BehaviorSubject, of } from "rxjs"; + +import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; +import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; +import { UserId } from "@bitwarden/common/types/guid"; +import { DialogRef, DialogService } from "@bitwarden/components"; +import { StateProvider } from "@bitwarden/state"; + +import { VaultWelcomeDialogComponent } from "../components/vault-welcome-dialog/vault-welcome-dialog.component"; + +import { WelcomeDialogService } from "./welcome-dialog.service"; + +describe("WelcomeDialogService", () => { + let service: WelcomeDialogService; + + const mockUserId = "user-123" as UserId; + + const getFeatureFlag = jest.fn().mockResolvedValue(false); + const getUserState$ = jest.fn().mockReturnValue(of(false)); + const mockDialogOpen = jest.spyOn(VaultWelcomeDialogComponent, "open"); + + let activeAccount$: BehaviorSubject; + + function createAccount(overrides: Partial = {}): Account { + return { + id: mockUserId, + creationDate: new Date(), + ...overrides, + } as Account; + } + + beforeEach(() => { + jest.clearAllMocks(); + mockDialogOpen.mockReset(); + + activeAccount$ = new BehaviorSubject(createAccount()); + + TestBed.configureTestingModule({ + providers: [ + WelcomeDialogService, + { provide: AccountService, useValue: { activeAccount$ } }, + { provide: ConfigService, useValue: { getFeatureFlag } }, + { provide: DialogService, useValue: {} }, + { provide: StateProvider, useValue: { getUserState$ } }, + ], + }); + + service = TestBed.inject(WelcomeDialogService); + }); + + describe("conditionallyShowWelcomeDialog", () => { + it("should not show dialog when no active account", async () => { + activeAccount$.next(null); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).not.toHaveBeenCalled(); + }); + + it("should not show dialog when feature flag is disabled", async () => { + getFeatureFlag.mockResolvedValueOnce(false); + + await service.conditionallyShowWelcomeDialog(); + + expect(getFeatureFlag).toHaveBeenCalledWith(FeatureFlag.PM29437_WelcomeDialog); + expect(mockDialogOpen).not.toHaveBeenCalled(); + }); + + it("should not show dialog when account has no creation date", async () => { + activeAccount$.next(createAccount({ creationDate: undefined })); + getFeatureFlag.mockResolvedValueOnce(true); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).not.toHaveBeenCalled(); + }); + + it("should not show dialog when account is older than 30 days", async () => { + const overThirtyDaysAgo = new Date(Date.now() - 1000 * 60 * 60 * 24 * 30 - 1000); + activeAccount$.next(createAccount({ creationDate: overThirtyDaysAgo })); + getFeatureFlag.mockResolvedValueOnce(true); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).not.toHaveBeenCalled(); + }); + + it("should not show dialog when user has already acknowledged it", async () => { + activeAccount$.next(createAccount({ creationDate: new Date() })); + getFeatureFlag.mockResolvedValueOnce(true); + getUserState$.mockReturnValueOnce(of(true)); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).not.toHaveBeenCalled(); + }); + + it("should show dialog for new user who has not acknowledged", async () => { + activeAccount$.next(createAccount({ creationDate: new Date() })); + getFeatureFlag.mockResolvedValueOnce(true); + getUserState$.mockReturnValueOnce(of(false)); + mockDialogOpen.mockReturnValue({ closed: of(undefined) } as DialogRef); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).toHaveBeenCalled(); + }); + + it("should show dialog for account created exactly 30 days ago", async () => { + const exactlyThirtyDaysAgo = new Date(Date.now() - 1000 * 60 * 60 * 24 * 30); + activeAccount$.next(createAccount({ creationDate: exactlyThirtyDaysAgo })); + getFeatureFlag.mockResolvedValueOnce(true); + getUserState$.mockReturnValueOnce(of(false)); + mockDialogOpen.mockReturnValue({ closed: of(undefined) } as DialogRef); + + await service.conditionallyShowWelcomeDialog(); + + expect(mockDialogOpen).toHaveBeenCalled(); + }); + }); +}); diff --git a/apps/web/src/app/vault/services/welcome-dialog.service.ts b/apps/web/src/app/vault/services/welcome-dialog.service.ts new file mode 100644 index 00000000000..25b24b6df2d --- /dev/null +++ b/apps/web/src/app/vault/services/welcome-dialog.service.ts @@ -0,0 +1,72 @@ +import { inject, Injectable } from "@angular/core"; +import { firstValueFrom, map } from "rxjs"; + +import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; +import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; +import { DialogService } from "@bitwarden/components"; +import { StateProvider, UserKeyDefinition, VAULT_WELCOME_DIALOG_DISK } from "@bitwarden/state"; + +import { VaultWelcomeDialogComponent } from "../components/vault-welcome-dialog/vault-welcome-dialog.component"; + +const VAULT_WELCOME_DIALOG_ACKNOWLEDGED_KEY = new UserKeyDefinition( + VAULT_WELCOME_DIALOG_DISK, + "vaultWelcomeDialogAcknowledged", + { + deserializer: (value) => value, + clearOn: [], + }, +); + +const THIRTY_DAY_MS = 1000 * 60 * 60 * 24 * 30; + +@Injectable({ providedIn: "root" }) +export class WelcomeDialogService { + private accountService = inject(AccountService); + private configService = inject(ConfigService); + private dialogService = inject(DialogService); + private stateProvider = inject(StateProvider); + + /** + * Conditionally shows the welcome dialog to new users. + * + * @returns true if the dialog was shown, false otherwise + */ + async conditionallyShowWelcomeDialog() { + const account = await firstValueFrom(this.accountService.activeAccount$); + if (!account) { + return; + } + + const enabled = await this.configService.getFeatureFlag(FeatureFlag.PM29437_WelcomeDialog); + if (!enabled) { + return; + } + + const createdAt = account.creationDate; + if (!createdAt) { + return; + } + + const ageMs = Date.now() - createdAt.getTime(); + const isNewUser = ageMs >= 0 && ageMs <= THIRTY_DAY_MS; + if (!isNewUser) { + return; + } + + const acknowledged = await firstValueFrom( + this.stateProvider + .getUserState$(VAULT_WELCOME_DIALOG_ACKNOWLEDGED_KEY, account.id) + .pipe(map((v) => v ?? false)), + ); + + if (acknowledged) { + return; + } + + const dialogRef = VaultWelcomeDialogComponent.open(this.dialogService); + await firstValueFrom(dialogRef.closed); + + return; + } +} diff --git a/apps/web/src/images/welcome-dialog-graphic.png b/apps/web/src/images/welcome-dialog-graphic.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2a12c52727b3b98438173de4a6d813bec1ac02 GIT binary patch literal 95551 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 B{Bi&Q literal 0 HcmV?d00001 diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index c45d7e5d630..b7ac6da15bc 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -12920,6 +12920,18 @@ "invalidSendPassword": { "message": "Invalid Send password" }, + "vaultWelcomeDialogTitle": { + "message": "You're in! Welcome to Bitwarden" + }, + "vaultWelcomeDialogDescription": { + "message": "Store all your passwords and personal info in your Bitwarden vault. We'll show you around." + }, + "vaultWelcomeDialogPrimaryCta": { + "message": "Start tour" + }, + "vaultWelcomeDialogDismissCta": { + "message": "Skip" + }, "sendPasswordHelperText": { "message": "Individuals will need to enter the password to view this Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." diff --git a/libs/common/src/enums/feature-flag.enum.ts b/libs/common/src/enums/feature-flag.enum.ts index b7fad43ebbf..7b1013077d7 100644 --- a/libs/common/src/enums/feature-flag.enum.ts +++ b/libs/common/src/enums/feature-flag.enum.ts @@ -69,6 +69,7 @@ export enum FeatureFlag { BrowserPremiumSpotlight = "pm-23384-browser-premium-spotlight", MigrateMyVaultToMyItems = "pm-20558-migrate-myvault-to-myitems", PM27632_SdkCipherCrudOperations = "pm-27632-cipher-crud-operations-to-sdk", + PM29437_WelcomeDialog = "pm-29437-welcome-dialog-no-ext-prompt", PM31039ItemActionInExtension = "pm-31039-item-action-in-extension", /* Platform */ @@ -135,6 +136,7 @@ export const DefaultFeatureFlagValue = { [FeatureFlag.BrowserPremiumSpotlight]: FALSE, [FeatureFlag.PM27632_SdkCipherCrudOperations]: FALSE, [FeatureFlag.MigrateMyVaultToMyItems]: FALSE, + [FeatureFlag.PM29437_WelcomeDialog]: FALSE, /* Auth */ [FeatureFlag.PM23801_PrefetchPasswordPrelogin]: FALSE, diff --git a/libs/state/src/core/state-definitions.ts b/libs/state/src/core/state-definitions.ts index ae6938b2069..30ee2be0592 100644 --- a/libs/state/src/core/state-definitions.ts +++ b/libs/state/src/core/state-definitions.ts @@ -212,6 +212,9 @@ export const SETUP_EXTENSION_DISMISSED_DISK = new StateDefinition( web: "disk-local", }, ); +export const VAULT_WELCOME_DIALOG_DISK = new StateDefinition("vaultWelcomeDialog", "disk", { + web: "disk-local", +}); export const VAULT_BROWSER_INTRO_CAROUSEL = new StateDefinition( "vaultBrowserIntroCarousel", "disk",