Move extension refresh swap function to libs so other clients can use it (#10640)
* Move extension refresh swap function to libs so other clients can use it * Update extensionRefreshSwap docs
This commit is contained in:
parent
19ef6ba467
commit
924d0b7dfe
|
@ -9,6 +9,7 @@ import {
|
||||||
unauthGuardFn,
|
unauthGuardFn,
|
||||||
} from "@bitwarden/angular/auth/guards";
|
} from "@bitwarden/angular/auth/guards";
|
||||||
import { canAccessFeature } from "@bitwarden/angular/platform/guard/feature-flag.guard";
|
import { canAccessFeature } from "@bitwarden/angular/platform/guard/feature-flag.guard";
|
||||||
|
import { extensionRefreshSwap } from "@bitwarden/angular/utils/extension-refresh-swap";
|
||||||
import {
|
import {
|
||||||
AnonLayoutWrapperComponent,
|
AnonLayoutWrapperComponent,
|
||||||
AnonLayoutWrapperData,
|
AnonLayoutWrapperData,
|
||||||
|
@ -91,7 +92,7 @@ import { SyncComponent } from "../vault/popup/settings/sync.component";
|
||||||
import { VaultSettingsV2Component } from "../vault/popup/settings/vault-settings-v2.component";
|
import { VaultSettingsV2Component } from "../vault/popup/settings/vault-settings-v2.component";
|
||||||
import { VaultSettingsComponent } from "../vault/popup/settings/vault-settings.component";
|
import { VaultSettingsComponent } from "../vault/popup/settings/vault-settings.component";
|
||||||
|
|
||||||
import { extensionRefreshRedirect, extensionRefreshSwap } from "./extension-refresh-route-utils";
|
import { extensionRefreshRedirect } from "./extension-refresh-route-utils";
|
||||||
import { debounceNavigationGuard } from "./services/debounce-navigation.service";
|
import { debounceNavigationGuard } from "./services/debounce-navigation.service";
|
||||||
import { TabsV2Component } from "./tabs-v2.component";
|
import { TabsV2Component } from "./tabs-v2.component";
|
||||||
import { TabsComponent } from "./tabs.component";
|
import { TabsComponent } from "./tabs.component";
|
||||||
|
|
|
@ -1,32 +1,9 @@
|
||||||
import { inject, Type } from "@angular/core";
|
import { inject } from "@angular/core";
|
||||||
import { Route, Router, Routes, UrlTree } from "@angular/router";
|
import { Router, UrlTree } from "@angular/router";
|
||||||
|
|
||||||
import { componentRouteSwap } from "@bitwarden/angular/utils/component-route-swap";
|
|
||||||
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper function to swap between two components based on the ExtensionRefresh feature flag.
|
|
||||||
* @param defaultComponent - The current non-refreshed component to render.
|
|
||||||
* @param refreshedComponent - The new refreshed component to render.
|
|
||||||
* @param options - The shared route options to apply to both components.
|
|
||||||
*/
|
|
||||||
export function extensionRefreshSwap(
|
|
||||||
defaultComponent: Type<any>,
|
|
||||||
refreshedComponent: Type<any>,
|
|
||||||
options: Route,
|
|
||||||
): Routes {
|
|
||||||
return componentRouteSwap(
|
|
||||||
defaultComponent,
|
|
||||||
refreshedComponent,
|
|
||||||
async () => {
|
|
||||||
const configService = inject(ConfigService);
|
|
||||||
return configService.getFeatureFlag(FeatureFlag.ExtensionRefresh);
|
|
||||||
},
|
|
||||||
options,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to redirect to a new URL based on the ExtensionRefresh feature flag.
|
* Helper function to redirect to a new URL based on the ExtensionRefresh feature flag.
|
||||||
* @param redirectUrl - The URL to redirect to if the ExtensionRefresh flag is enabled.
|
* @param redirectUrl - The URL to redirect to if the ExtensionRefresh flag is enabled.
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
import { Type, inject } from "@angular/core";
|
||||||
|
import { Route, Routes } from "@angular/router";
|
||||||
|
|
||||||
|
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
||||||
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
||||||
|
|
||||||
|
import { componentRouteSwap } from "./component-route-swap";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function to swap between two components based on the ExtensionRefresh feature flag.
|
||||||
|
* @param defaultComponent - The current non-refreshed component to render.
|
||||||
|
* @param refreshedComponent - The new refreshed component to render.
|
||||||
|
* @param options - The shared route options to apply to the default component, and to the alt component if altOptions is not provided.
|
||||||
|
* @param altOptions - The alt route options to apply to the alt component.
|
||||||
|
*/
|
||||||
|
export function extensionRefreshSwap(
|
||||||
|
defaultComponent: Type<any>,
|
||||||
|
refreshedComponent: Type<any>,
|
||||||
|
options: Route,
|
||||||
|
altOptions?: Route,
|
||||||
|
): Routes {
|
||||||
|
return componentRouteSwap(
|
||||||
|
defaultComponent,
|
||||||
|
refreshedComponent,
|
||||||
|
async () => {
|
||||||
|
const configService = inject(ConfigService);
|
||||||
|
return configService.getFeatureFlag(FeatureFlag.ExtensionRefresh);
|
||||||
|
},
|
||||||
|
options,
|
||||||
|
altOptions,
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue