Major refactor
This commit is contained in:
@ -27,7 +27,6 @@ export const CASProvider = ({ children }: CASProviderProps) => {
|
||||
redirectToCASLoginService();
|
||||
}
|
||||
if (ticket) {
|
||||
console.log(`Ticket is: ${ticket}`);
|
||||
setUser({ ...user, ticket: ticket });
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,14 @@
|
||||
import React, { useState, createContext, useEffect } from 'react';
|
||||
import { Course, Group } from '../types';
|
||||
|
||||
interface courseContext {
|
||||
import axios from 'axios';
|
||||
interface CourseContext {
|
||||
courses: Array<Course>;
|
||||
choosenCourses: Array<Course>;
|
||||
choosenGroups: Array<Group>;
|
||||
addCourse: (courses: Course) => void;
|
||||
addGroup: (group: Group) => void;
|
||||
addChoosenCourse: (courses: Course) => void;
|
||||
addChoosenGroup: (group: Group) => void;
|
||||
}
|
||||
export const coursesContext = createContext<courseContext | null>(null);
|
||||
export const coursesContext = createContext<CourseContext | null>(null);
|
||||
|
||||
interface CoursesProviderProps {
|
||||
children: React.ReactNode;
|
||||
@ -15,17 +16,36 @@ interface CoursesProviderProps {
|
||||
|
||||
export const CoursesProvider = ({ children }: CoursesProviderProps) => {
|
||||
const [courses, setCourses] = useState<Array<Course>>([]);
|
||||
const [choosenCourses, setChoosenCourses] = useState<Array<Course>>([]);
|
||||
const [choosenGroups, setChoosenGroups] = useState<Array<Group>>([]);
|
||||
|
||||
const addCourse = (course: Course) => {
|
||||
setCourses([...courses, course]);
|
||||
const addChoosenCourse = (choosenCourse: Course) => {
|
||||
console.log('adding course');
|
||||
setChoosenCourses([...choosenCourses, choosenCourse]);
|
||||
};
|
||||
const addGroup = (group: Group) => {
|
||||
setChoosenGroups([...choosenGroups, group]);
|
||||
const addChoosenGroup = (choosenGroup: Group) => {
|
||||
setChoosenGroups([...choosenGroups, choosenGroup]);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
console.log('All courses');
|
||||
console.log(courses);
|
||||
}, [courses]);
|
||||
useEffect(() => {
|
||||
console.log('Choosen courses');
|
||||
console.log(choosenCourses);
|
||||
}, [choosenCourses]);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchData = async () => {
|
||||
const { data } = await axios.get(`${process.env.REACT_APP_API_URL}/getCourses`);
|
||||
setCourses(data);
|
||||
};
|
||||
fetchData();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<coursesContext.Provider value={{ courses, choosenGroups, addCourse, addGroup }}>
|
||||
<coursesContext.Provider value={{ courses, choosenGroups, choosenCourses, addChoosenCourse, addChoosenGroup }}>
|
||||
{children}
|
||||
</coursesContext.Provider>
|
||||
);
|
||||
|
6
src/contexts/reducers.ts
Normal file
6
src/contexts/reducers.ts
Normal file
@ -0,0 +1,6 @@
|
||||
export enum Types {
|
||||
addChoosenCourse = 'ADD_COURSE',
|
||||
removecourse = 'REMOVE_COURSE',
|
||||
addChoosenGroup = 'ADD_GROUP',
|
||||
removeGroup = 'REMOVE_GROUP',
|
||||
}
|
Reference in New Issue
Block a user