fixed hover

This commit is contained in:
wrzesinski-hubert
2021-01-12 22:59:12 +01:00
parent d4f7ad341a
commit 1c7888a478
13 changed files with 210 additions and 58 deletions

View File

@ -36,7 +36,6 @@ export const CASProvider = ({ children }: CASProviderProps) => {
const { data: user } = await axiosInstance.get<LoggedUser & { token: string; refreshToken: string }>(
`${process.env.REACT_APP_API_URL}/token?ticket=${ticket}`,
);
console.log('token response: ', user);
setUser({ authorityRole: user.authorityRole, email: user.email, id: user.id });
localStorage.setItem('userToken', user.token);
localStorage.setItem('userPrivilige', user.authorityRole);

View File

@ -20,21 +20,23 @@ interface CourseContext {
hoveredGroup: Group | undefined | null;
userID: string;
isDataLoading: boolean;
historyBasket: Array<Basket>;
addCourseToBasket: (courses: Course) => void;
changeHoveredGroup: (group: Group | null) => void;
changeGroupInBasket: (group: Group, courseId: number) => void;
changeGroupInBasket: (group: any, courseId: number) => void;
restoreGroupInBasket: (restoreGroup: Group, courseId: number) => void;
deleteFromBasket: (id: number) => void;
saveBasket: (userID: string) => Promise<void>;
changeStudent: (studentId: string) => void;
selectSchedulerEvents: () => Array<SchedulerEvent>;
selectHistorySchedulerEvents: () => Array<SchedulerEvent>;
selectBasketNames: () => Array<string>;
selectBasketCourses: () => Array<Course>;
selectBasketCourseGroups: (courseId: number) => { lecture: Group | undefined; classes: Group | undefined };
getNewestStudentTimetable: (studentId: string) => void;
getStudentTimetablesHistory: (studentId: string) => void;
changeDataLoading: (isLoading: boolean) => void;
setBasketFromHistoryGroups: (groupsIds: Array<number>) => void;
setHistoryBasketFromHistoryGroups: (groupsIds: Array<number>) => void;
}
export const coursesContext = createContext<CourseContext | undefined>(undefined);
@ -49,6 +51,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
//fetch courses with groups
const [courses, setCourses] = useState<Array<Course>>([]);
const [basket, setBasket] = useState<Array<Basket>>([]);
const [historyBasket, setHistoryBasket] = useState<Array<Basket>>([]);
const [timetableHistory, setTimetableHistory] = useState<Array<TimetableHistory>>([]);
const [userID, setUserID] = useState('');
const [hoveredGroup, setHoveredGroup] = useState<Group | undefined | null>(null);
@ -83,6 +86,20 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
}, [] as Array<SchedulerEvent>);
};
const selectHistorySchedulerEvents = () => {
return historyBasket.reduce((res, el) => {
const { name } = el;
if (el.classes) {
res.push({ ...el.classes, name });
}
if (el.lecture) {
res.push({ ...el.lecture, name });
}
return res;
}, [] as Array<SchedulerEvent>);
};
const selectBasketCourseGroups = (courseId: number) => {
const course = basket.find(({ id }) => id === courseId);
if (course !== undefined) {
@ -147,19 +164,16 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
getStudentTimetablesHistory(userID);
};
const changeGroupInBasket = (choosenGroup: Group, courseId: number) => {
const changeGroupInBasket = (choosenGroup: any, courseId: number) => {
const basketCourse = basket.filter((course) => course.id === courseId)[0];
const { type } = choosenGroup;
if (type === GroupType.CLASS) {
if (choosenGroup.lecture && choosenGroup.classes)
{
const prev = choosenGroup.prev==="lecture"?choosenGroup.lecture : choosenGroup.classes
setBasket(
basket.map((basket) => (basket.id === basketCourse.id ? { ...basket, classes: choosenGroup } : basket)),
basket.map((basket) => (basket.id === basketCourse.id ? { ...basket, lecture: choosenGroup.lecture, classes:choosenGroup.classes } : basket)),
);
} else if (type === GroupType.LECTURE) {
setBasket(
basket.map((basket) => (basket.id === basketCourse.id ? { ...basket, lecture: choosenGroup } : basket)),
);
}
changeHoveredGroup(choosenGroup);
changeHoveredGroup(prev);
}
};
const restoreGroupInBasket = (restoreGroup: Group, courseId: number) => {
@ -225,7 +239,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
}
};
const setBasketFromHistoryGroups = (groupsIds: Array<number>) => {
const setHistoryBasketFromHistoryGroups = (groupsIds: Array<number>) => {
const basket: Array<Basket> = [];
for (const groupId of groupsIds) {
for (const course of courses) {
@ -251,7 +265,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
}
}
console.log('baskeeeeeet: ', basket);
setBasket(basket);
setHistoryBasket(basket);
};
useEffect(() => {
@ -272,6 +286,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
hoveredGroup,
timetableHistory,
isDataLoading,
historyBasket,
addCourseToBasket,
changeHoveredGroup,
changeGroupInBasket,
@ -279,13 +294,14 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
restoreGroupInBasket,
saveBasket,
selectSchedulerEvents,
selectHistorySchedulerEvents,
selectBasketNames,
selectBasketCourses,
selectBasketCourseGroups,
getNewestStudentTimetable,
changeStudent,
getStudentTimetablesHistory,
setBasketFromHistoryGroups,
setHistoryBasketFromHistoryGroups,
changeDataLoading,
}}
>

View File

@ -18,10 +18,6 @@ export const StudentsProvider = ({ children }: StudentsProviderProps) => {
const [students, setStudents] = useState<Array<Student>>([]);
const [selectedStudent, setSelectedStudent] = useState<Student | null>(null);
useEffect(() => {
console.log('selected student: ', selectedStudent);
}, [selectedStudent]);
const getStudents = async () => {
try {
const { data } = await axiosInstance.get<Array<Student>>(