1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-09-19 02:51:14 +02:00

Add optional altOptions to componentRouteSwap (#9821)

This commit is contained in:
Bernd Schoolmann 2024-06-26 11:26:50 +02:00 committed by GitHub
parent 3f44eadb5f
commit 93a57e6724
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -26,27 +26,31 @@ import { Route, Routes } from "@angular/router";
* @param defaultComponent - The default component to render.
* @param altComponent - The alternate component to render when the condition is met.
* @param shouldSwapFn - The async function to determine if the alternate component should be rendered.
* @param options - The shared route options to apply to both components.
* @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 componentRouteSwap(
defaultComponent: Type<any>,
altComponent: Type<any>,
shouldSwapFn: () => Promise<boolean>,
options: Route,
altOptions?: Route,
): Routes {
const defaultRoute = {
...options,
component: defaultComponent,
};
const selectedAltOptions = altOptions ?? options;
const altRoute: Route = {
...options,
...selectedAltOptions,
component: altComponent,
canMatch: [
async () => {
return await shouldSwapFn();
},
...(options.canMatch ?? []),
...(selectedAltOptions.canMatch ?? []),
],
};