user interface changes

This commit is contained in:
Maciek Głowacki
2020-12-12 19:57:16 +01:00
parent 597f17695d
commit e3a1b280e0
9 changed files with 98 additions and 89 deletions

View File

@ -1,11 +1,11 @@
import React, { useState, useEffect, createContext, ReactNode } from 'react';
import { User, Token } from '../types';
import { LoggedUser } from '../types';
import { axiosInstance } from '../utils/axiosInstance';
export interface CASContext {
user?: User;
user: LoggedUser | undefined;
logout: () => void;
token?: string | null;
token: string | undefined;
}
export const CASContext = createContext<CASContext | undefined>(undefined);
@ -15,8 +15,8 @@ export interface CASProviderProps {
}
export const CASProvider = ({ children }: CASProviderProps) => {
const [user, setUser] = useState<User | undefined>(undefined);
const [token, setToken] = useState<string | null>(null);
const [user, setUser] = useState<LoggedUser>();
const [token, setToken] = useState<string | undefined>();
useEffect(() => {
const login = async () => {
const urlParams = new URLSearchParams(window.location.search);
@ -26,18 +26,15 @@ export const CASProvider = ({ children }: CASProviderProps) => {
}
try {
if (!localStorage.getItem('userToken')) {
const { data: token } = await axiosInstance.get(`${process.env.REACT_APP_API_URL}/token?ticket=${ticket}`);
localStorage.setItem('userToken', token.token);
localStorage.setItem('userPrivilige', token.authorityRole);
const { data: user } = await axiosInstance.get<LoggedUser & { token: string }>(
`${process.env.REACT_APP_API_URL}/token?ticket=${ticket}`,
);
setUser({ authorityRole: user.authorityRole, email: user.email, id: user.id });
localStorage.setItem('userToken', user.token);
localStorage.setItem('userPrivilige', user.authorityRole);
}
const tokenTMP: any = JSON.parse(localStorage.getItem('userToken') as string);
const token: Token = {
authorityRole: tokenTMP.authorityRole,
email: tokenTMP.email,
id: tokenTMP.id,
token: tokenTMP.token,
};
setToken(token.token);
const token = localStorage.getItem('userToken');
token && setToken(token);
} catch (e) {
console.log(e);
}
@ -46,6 +43,7 @@ export const CASProvider = ({ children }: CASProviderProps) => {
}, []);
function logout() {
localStorage.removeItem('userToken');
redirectToCASLogoutService();
}