fixed hover
This commit is contained in:
@ -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);
|
||||
|
@ -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,
|
||||
}}
|
||||
>
|
||||
|
@ -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>>(
|
||||
|
Reference in New Issue
Block a user