From 58d6770d20b9c4158bf050b47e47d1f112ba0ec0 Mon Sep 17 00:00:00 2001 From: Alec Rippberger Date: Fri, 27 Sep 2024 12:46:17 -0500 Subject: [PATCH] Add unauthUiRefreshRedirect utility function. --- .../functions/unauth-ui-refresh-redirect.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 libs/angular/src/auth/functions/unauth-ui-refresh-redirect.ts diff --git a/libs/angular/src/auth/functions/unauth-ui-refresh-redirect.ts b/libs/angular/src/auth/functions/unauth-ui-refresh-redirect.ts new file mode 100644 index 00000000000..22ed23273b0 --- /dev/null +++ b/libs/angular/src/auth/functions/unauth-ui-refresh-redirect.ts @@ -0,0 +1,24 @@ +import { inject } from "@angular/core"; +import { UrlTree, Router } from "@angular/router"; + +import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; +import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; + +/** + * Helper function to redirect to a new URL based on the UnauthenticatedExtensionUIRefresh feature flag. + * @param redirectUrl - The URL to redirect to if the UnauthenticatedExtensionUIRefresh flag is enabled. + */ +export function unauthUiRefreshRedirect(redirectUrl: string): () => Promise { + return async () => { + const configService = inject(ConfigService); + const router = inject(Router); + const shouldRedirect = await configService.getFeatureFlag( + FeatureFlag.UnauthenticatedExtensionUIRefresh, + ); + if (shouldRedirect) { + return router.parseUrl(redirectUrl); + } else { + return true; + } + }; +}