adding pilot

This commit is contained in:
2024-09-19 21:39:23 -05:00
parent ae8e407bce
commit 4600c5e698
15 changed files with 405 additions and 248 deletions

View File

@@ -5,25 +5,11 @@ import { useAppContext } from './hooks/appContext/UseAppContext';
import { AxiosInstance, AxiosResponse } from 'axios';
import { useHttpClient } from './hooks/httpClient/UseHttpClient';
import { useFeatureFlag } from './hooks/featureFlag/UseFeatureFlag';
import { useMsal } from '@azure/msal-react';
import SiteNav from './components/siteNav/SiteNav';
import { EventMessage, EventPayload, EventType } from '@azure/msal-browser';
import { User } from '@microsoft/microsoft-graph-types';
type EventPayloadExtended = EventPayload & { accessToken: string };
const App: React.FC<unknown> = () => {
const httpClient: AxiosInstance = useHttpClient();
const appContext = useAppContext();
const { inProgress, instance } = useMsal();
const handleSignIn = async () => {
await instance.loginRedirect({
scopes: [`api://${import.meta.env.VITE_CLIENT_ID}/user_impersonation`]
});
};
const handleSignOut = () => {
instance.logoutRedirect();
};
useEffect(() => {
const getFeatureFlags = async () => {
@@ -48,49 +34,9 @@ const App: React.FC<unknown> = () => {
getFeatureFlags();
}, []);
useEffect(() => {
const callback = instance.addEventCallback(
async (message: EventMessage) => {
if (message.eventType === EventType.LOGIN_SUCCESS) {
try {
const eventPayload: EventPayloadExtended =
message.payload as EventPayloadExtended;
const response: AxiosResponse = await httpClient.get(
`api/userProfile`,
{
headers: {
Authorization: `Bearer ${eventPayload.accessToken}`
}
}
);
const userProfile: User = response.data;
appContext.dispatch({
type: 'SET_USER_PROFILE',
payload: userProfile
});
} catch (error) {
console.log(error);
}
}
}
);
return () => {
if (callback) {
instance.removeEventCallback(callback);
appContext.dispatch({ type: 'SET_USER_PROFILE', payload: {} });
}
};
}, []);
return (
<div className="container mx-auto">
<SiteNav
handleSignIn={handleSignIn}
handleSignOut={handleSignOut}
inProgress={inProgress}
/>
<SiteNav />
<Routes>
{useFeatureFlag('flying-pilots')?.enabled && (
<Route path="/" element={<Pilots />} />