diff --git a/packages/react-ui/src/app/lib/frontegg-setup.ts b/packages/react-ui/src/app/lib/frontegg-setup.ts index 26be0a6d03..2f0079f6c1 100644 --- a/packages/react-ui/src/app/lib/frontegg-setup.ts +++ b/packages/react-ui/src/app/lib/frontegg-setup.ts @@ -5,17 +5,38 @@ export const additionalFronteggParams = { prompt: 'select_account', }; -export function initializeFrontegg(url: string, tenant?: string): FronteggApp { - const tenantResolver = tenant ? () => ({ tenant }) : undefined; +let fronteggApp: FronteggApp | null = null; + +type Options = { + url: string; + clientId?: string; + tenant?: string; +}; - return initialize({ +export function initializeFrontegg({ + url, + clientId, + tenant, +}: Options): FronteggApp { + if (fronteggApp) { + return fronteggApp; + } + const tenantResolver = tenant ? () => ({ tenant }) : undefined; + const options = { contextOptions: { baseUrl: url, + clientId, tenantResolver, }, authOptions: { keepSessionAlive: true, }, hostedLoginBox: true, - }); + }; + fronteggApp = initialize(options); + return fronteggApp; +} + +export function getFronteggApp(): FronteggApp | null { + return fronteggApp; } diff --git a/packages/react-ui/src/app/routes/cloud-connection/cloud-connection-page.tsx b/packages/react-ui/src/app/routes/cloud-connection/cloud-connection-page.tsx index 5669482ee9..e6ba30c38e 100644 --- a/packages/react-ui/src/app/routes/cloud-connection/cloud-connection-page.tsx +++ b/packages/react-ui/src/app/routes/cloud-connection/cloud-connection-page.tsx @@ -43,7 +43,7 @@ const CloudConnectionPage = () => { return; } - const app = initializeFrontegg(FRONTEGG_URL as string); + const app = initializeFrontegg({ url: FRONTEGG_URL as string }); app.ready(() => { app.store.subscribe(() => { diff --git a/packages/react-ui/src/app/routes/cloud-connection/cloud-logout-page.tsx b/packages/react-ui/src/app/routes/cloud-connection/cloud-logout-page.tsx index 40ee6e4122..727a8e1850 100644 --- a/packages/react-ui/src/app/routes/cloud-connection/cloud-logout-page.tsx +++ b/packages/react-ui/src/app/routes/cloud-connection/cloud-logout-page.tsx @@ -37,7 +37,7 @@ const CloudLogoutPage = () => { return; } - const app = initializeFrontegg(FRONTEGG_URL as string); + const app = initializeFrontegg({ url: FRONTEGG_URL as string }); Cookies.remove('cloud-token'); Cookies.remove('cloud-refresh-token');