Files
noahspan-flying/client/src/hooks/userRole/UseUserRole.tsx

31 lines
912 B
TypeScript

import { useEffect, useState } from "react";
import { useOidc } from "../../auth/oidcConfig";
import { UserRole } from "../../enums/userRole";
export const useUserRole = () => {
const [userRole, setUserRole] = useState<UserRole>()
const { isUserLoggedIn, decodedIdToken } = useOidc();
useEffect(() => {
if (isUserLoggedIn && decodedIdToken) {
const rolesKeyName: string | undefined = Object.keys(decodedIdToken).find((key) => key.includes('roles'));
const idTokenRoles: string[] = decodedIdToken[rolesKeyName!] as string[];
let newUserRole: string | undefined;
for (const key in UserRole) {
if (UserRole[key as keyof typeof UserRole] === idTokenRoles[0]) {
newUserRole = key;
break;
}
}
setUserRole(UserRole[newUserRole! as keyof typeof UserRole]);
}
}, [decodedIdToken, isUserLoggedIn])
return {
userRole
}
}