Refactoring
This commit is contained in:
@@ -7,8 +7,14 @@ import { AxiosInstance, AxiosResponse } from 'axios';
|
|||||||
import { useHttpClient } from './hooks/httpClient/UseHttpClient';
|
import { useHttpClient } from './hooks/httpClient/UseHttpClient';
|
||||||
import { useFeatureFlag } from './hooks/featureFlag/UseFeatureFlag';
|
import { useFeatureFlag } from './hooks/featureFlag/UseFeatureFlag';
|
||||||
import SiteNav from './components/siteNav/SiteNav';
|
import SiteNav from './components/siteNav/SiteNav';
|
||||||
|
import { IPublicClientApplication } from '@azure/msal-browser';
|
||||||
|
import { MsalProvider } from '@azure/msal-react';
|
||||||
|
|
||||||
const App: React.FC<unknown> = () => {
|
interface AppProps {
|
||||||
|
pca: IPublicClientApplication
|
||||||
|
}
|
||||||
|
|
||||||
|
const App: React.FC<AppProps> = ({ pca }: AppProps) => {
|
||||||
const httpClient: AxiosInstance = useHttpClient();
|
const httpClient: AxiosInstance = useHttpClient();
|
||||||
const appContext = useAppContext();
|
const appContext = useAppContext();
|
||||||
|
|
||||||
@@ -36,7 +42,7 @@ const App: React.FC<unknown> = () => {
|
|||||||
// }, []);
|
// }, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<MsalProvider instance={pca}>
|
||||||
<SiteNav />
|
<SiteNav />
|
||||||
<Routes>
|
<Routes>
|
||||||
{/* {useFeatureFlag('flying-pilots')?.enabled && ( */}
|
{/* {useFeatureFlag('flying-pilots')?.enabled && ( */}
|
||||||
@@ -44,7 +50,7 @@ const App: React.FC<unknown> = () => {
|
|||||||
{/* )} */}
|
{/* )} */}
|
||||||
<Route path="/" element={<Logbook />} />
|
<Route path="/" element={<Logbook />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</div>
|
</MsalProvider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,83 +5,33 @@ import AppContextProvider from './context/appContext/AppContextProvider.tsx';
|
|||||||
import { BrowserRouter } from 'react-router-dom';
|
import { BrowserRouter } from 'react-router-dom';
|
||||||
import './index.css';
|
import './index.css';
|
||||||
import '@noahspan/noahspan-components/noahspan-components.css';
|
import '@noahspan/noahspan-components/noahspan-components.css';
|
||||||
import { Configuration, EventType, LogLevel, PublicClientApplication } from '@azure/msal-browser';
|
import { AuthenticationResult, EventMessage, EventType, PublicClientApplication } from '@azure/msal-browser';
|
||||||
import { MsalProvider } from '@azure/msal-react';
|
import { MsalProvider } from '@azure/msal-react';
|
||||||
|
import { msalConfig } from './auth/msalConfig.ts';
|
||||||
const msalConfig: Configuration = {
|
|
||||||
auth: {
|
|
||||||
clientId: import.meta.env.VITE_CLIENT_ID,
|
|
||||||
authority: `https://login.microsoftonline.com/${import.meta.env.VITE_TENANT_ID}`,
|
|
||||||
redirectUri: import.meta.env.VITE_REDIRECT_URL,
|
|
||||||
postLogoutRedirectUri: '/',
|
|
||||||
navigateToLoginRequestUrl: false,
|
|
||||||
},
|
|
||||||
cache: {
|
|
||||||
cacheLocation: 'localStorage',
|
|
||||||
storeAuthStateInCookie: false,
|
|
||||||
},
|
|
||||||
system: {
|
|
||||||
loggerOptions: {
|
|
||||||
loggerCallback: (level, message, containsPii) => {
|
|
||||||
if (containsPii) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (level) {
|
|
||||||
case LogLevel.Error:
|
|
||||||
console.error(message);
|
|
||||||
return;
|
|
||||||
case LogLevel.Info:
|
|
||||||
console.info(message);
|
|
||||||
return;
|
|
||||||
case LogLevel.Verbose:
|
|
||||||
console.debug(message);
|
|
||||||
return;
|
|
||||||
case LogLevel.Warning:
|
|
||||||
console.warn(message);
|
|
||||||
return;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const msalInstance: PublicClientApplication = new PublicClientApplication(msalConfig);
|
const msalInstance: PublicClientApplication = new PublicClientApplication(msalConfig);
|
||||||
|
const accounts = msalInstance.getAllAccounts();
|
||||||
|
|
||||||
msalInstance.initialize()
|
console.log({ accounts, msalInstance });
|
||||||
.then(() => {
|
|
||||||
console.log('Initialized!');
|
|
||||||
|
|
||||||
if (!msalInstance.getActiveAccount() && msalInstance.getAllAccounts().length > 0) {
|
if (accounts.length > 0) {
|
||||||
msalInstance.setActiveAccount(msalInstance.getAllAccounts()[0]);
|
msalInstance.setActiveAccount(accounts[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
msalInstance.enableAccountStorageEvents();
|
msalInstance.addEventCallback((event: EventMessage) => {
|
||||||
msalInstance.addEventCallback((event: any) => {
|
if (event.eventType === EventType.LOGIN_SUCCESS && event.payload) {
|
||||||
if (
|
const payload = event.payload as AuthenticationResult;
|
||||||
event.eventType === EventType.LOGIN_SUCCESS ||
|
const account = payload.account;
|
||||||
event.eventType === EventType.ACQUIRE_TOKEN_SUCCESS ||
|
msalInstance.setActiveAccount(account);
|
||||||
event.eventType === EventType.SSO_SILENT_SUCCESS
|
}
|
||||||
) {
|
});
|
||||||
const account = event.payload.account;
|
|
||||||
msalInstance.setActiveAccount(account);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.error('Error during initialization');
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
ReactDOM.createRoot(document.getElementById('root')!).render(
|
ReactDOM.createRoot(document.getElementById('root')!).render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
<MsalProvider instance={msalInstance}>
|
<AppContextProvider>
|
||||||
<AppContextProvider>
|
<BrowserRouter>
|
||||||
<BrowserRouter>
|
<App pca={msalInstance} />
|
||||||
<App />
|
</BrowserRouter>
|
||||||
</BrowserRouter>
|
</AppContextProvider>
|
||||||
</AppContextProvider>
|
|
||||||
</MsalProvider>
|
|
||||||
</React.StrictMode>
|
</React.StrictMode>
|
||||||
);
|
);
|
||||||
Reference in New Issue
Block a user