additional changes, setup localStorage

This commit is contained in:
Maciek Głowacki
2020-12-12 17:54:13 +01:00
parent 8ba07f5c07
commit 597f17695d
16 changed files with 12141 additions and 15123 deletions

View File

@ -25,12 +25,12 @@ export const CASProvider = ({ children }: CASProviderProps) => {
redirectToCASLoginService();
}
try {
if (!sessionStorage.getItem('userToken')) {
if (!localStorage.getItem('userToken')) {
const { data: token } = await axiosInstance.get(`${process.env.REACT_APP_API_URL}/token?ticket=${ticket}`);
sessionStorage.setItem('userToken', token.token);
sessionStorage.setItem('userPrivilage', token.authorityRole)
localStorage.setItem('userToken', token.token);
localStorage.setItem('userPrivilige', token.authorityRole);
}
const tokenTMP:any = JSON.parse(sessionStorage.getItem('userToken')as string);
const tokenTMP: any = JSON.parse(localStorage.getItem('userToken') as string);
const token: Token = {
authorityRole: tokenTMP.authorityRole,
email: tokenTMP.email,

View File

@ -18,14 +18,15 @@ interface CourseContext {
courses: Array<Course>;
basket: Array<Basket>;
hoveredGroup: Group | undefined | null;
userID:string;
userID: string;
isDataLoading: boolean;
addCourseToBasket: (courses: Course) => void;
changeHoveredGroup: (group: Group | null) => void;
changeGroupInBasket: (group: Group, courseId: number) => void;
restoreGroupInBasket: (restoreGroup: Group, courseId: number) => void;
deleteFromBasket: (id: number) => void;
saveBasket: (userID: string) => Promise<void>
getUserID: (userID: string) => Promise<void>
saveBasket: (userID: string) => Promise<void>;
getUserID: (userID: string) => Promise<void>;
selectSchedulerEvents: () => Array<SchedulerEvent>;
selectBasketNames: () => Array<string>;
selectBasketCourses: () => Array<Course>;
@ -45,8 +46,10 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
//fetch courses with groups
const [courses, setCourses] = useState<Array<Course>>([]);
const [basket, setBasket] = useState<Array<Basket>>([]);
const [userID, setUserID] = useState("");
const [userID, setUserID] = useState('');
const [hoveredGroup, setHoveredGroup] = useState<Group | undefined | null>(null);
const [isDataLoading, setIsDataLoading] = useState(false);
const selectBasketIds = () => {
const classesIds = basket.map((course) => course?.classes?.id).filter((course) => course !== undefined);
const lecturesIds = basket.map((course) => course?.lecture?.id).filter((course) => course !== undefined);
@ -101,11 +104,11 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
const deleteFromBasket = (id: number) => setBasket(basket.filter((course) => course.id !== id));
const getUserID = async (userID:string) => {
const getUserID = async (userID: string) => {
setUserID(userID);
}
};
const saveBasket = async (userID:string) => {
const saveBasket = async (userID: string) => {
const basketIds = selectBasketIds();
const action = (key: any) => (
<>
@ -118,7 +121,10 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
);
try {
await axiosInstance.post(`${process.env.REACT_APP_API_URL}/api/v1/commisions/user/${userID}`, JSON.stringify(basketIds));
await axiosInstance.post(
`${process.env.REACT_APP_API_URL}/api/v1/commisions/user/${userID}`,
JSON.stringify(basketIds),
);
enqueueSnackbar('Plan został zapisany', {
variant: 'success',
action,
@ -163,9 +169,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
const getNewestTimetable = async () => {
try {
const { data } = await axiosInstance.get(
`${process.env.REACT_APP_API_URL}/api/v1/assignments/user`,
);
const { data } = await axiosInstance.get(`${process.env.REACT_APP_API_URL}/api/v1/assignments/user`);
const basket = data === '' ? [] : data;
setBasket(basket);
} catch (e) {
@ -173,16 +177,14 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
}
};
const getUserTimetable = async (userID:string) => {
const getUserTimetable = async (userID: string) => {
try {
const {data} = await axiosInstance.get(
`${process.env.REACT_APP_API_URL}/api/v1/commisions/user/${userID}`,
);
const { data } = await axiosInstance.get(`${process.env.REACT_APP_API_URL}/api/v1/commisions/user/${userID}`);
console.log(data);
} catch (e) {
console.log(e);
}
}
};
const fetchCourses = async () => {
try {
@ -197,10 +199,12 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
};
useEffect(() => {
setIsDataLoading(true);
setTimeout(() => {
fetchCourses();
getNewestTimetable();
}, 10);
setIsDataLoading(false);
}, 500);
}, []);
return (
@ -210,6 +214,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
courses,
basket,
hoveredGroup,
isDataLoading,
addCourseToBasket,
changeHoveredGroup,
changeGroupInBasket,

View File

@ -14,19 +14,21 @@ interface UsersProviderProps {
export const UsersProvider = ({ children }: UsersProviderProps) => {
const [users, setUsers] = useState<Array<User>>([]);
const getUsers = async () => {
try {
const {data}= await axiosInstance.get<Array<User>>(`${process.env.REACT_APP_API_URL}/api/v1/users/students`);
const { data } = await axiosInstance.get<Array<User>>(`${process.env.REACT_APP_API_URL}/api/v1/users/students`);
setUsers(data);
console.log(data);
} catch(e){
} catch (e) {
console.log(e);
}
};
useEffect(() => {
setTimeout(() => {
getUsers();
}, 500);
}, []);
return (