Major refactor

This commit is contained in:
Maciek Głowacki
2020-08-17 23:56:34 +02:00
parent 55bb7945c9
commit 74ad2e835c
14 changed files with 220 additions and 259 deletions

View File

@ -27,7 +27,6 @@ export const CASProvider = ({ children }: CASProviderProps) => {
redirectToCASLoginService();
}
if (ticket) {
console.log(`Ticket is: ${ticket}`);
setUser({ ...user, ticket: ticket });
}
}

View File

@ -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
View File

@ -0,0 +1,6 @@
export enum Types {
addChoosenCourse = 'ADD_COURSE',
removecourse = 'REMOVE_COURSE',
addChoosenGroup = 'ADD_GROUP',
removeGroup = 'REMOVE_GROUP',
}