Refactor again
This commit is contained in:
32
src/contexts/CoursesProvider.tsx
Normal file
32
src/contexts/CoursesProvider.tsx
Normal file
@ -0,0 +1,32 @@
|
||||
import React, { useState, createContext, useEffect } from 'react';
|
||||
import { Course, Group } from '../types';
|
||||
|
||||
interface courseContext {
|
||||
courses: Array<Course>;
|
||||
choosenGroups: Array<Group>;
|
||||
addCourse: (courses: Course) => void;
|
||||
addGroup: (group: Group) => void;
|
||||
}
|
||||
export const coursesContext = createContext<courseContext | null>(null);
|
||||
|
||||
interface CoursesProviderProps {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export const CoursesProvider = ({ children }: CoursesProviderProps) => {
|
||||
const [courses, setCourses] = useState<Array<Course>>([]);
|
||||
const [choosenGroups, setChoosenGroups] = useState<Array<Group>>([]);
|
||||
|
||||
const addCourse = (course: Course) => {
|
||||
setCourses([...courses, course]);
|
||||
};
|
||||
const addGroup = (group: Group) => {
|
||||
setChoosenGroups([...choosenGroups, group]);
|
||||
};
|
||||
|
||||
return (
|
||||
<coursesContext.Provider value={{ courses, choosenGroups, addCourse, addGroup }}>
|
||||
{children}
|
||||
</coursesContext.Provider>
|
||||
);
|
||||
};
|
@ -1,32 +0,0 @@
|
||||
import React, { useState, createContext } from 'react';
|
||||
import { Lecture, Group } from '../types';
|
||||
|
||||
interface LectureContext {
|
||||
lectures: Array<Lecture>;
|
||||
choosenGroups: Array<Group>;
|
||||
addLecture: (lectures: Lecture) => void;
|
||||
addGroup: (group: Group) => void;
|
||||
}
|
||||
export const LecturesContext = createContext<LectureContext | null>(null);
|
||||
|
||||
interface LecturesProviderProps {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export const LecturesProvider = ({ children }: LecturesProviderProps) => {
|
||||
const [lectures, setLectures] = useState<Array<Lecture>>([]);
|
||||
const [choosenGroups, setChoosenGroups] = useState<Array<Group>>([]);
|
||||
|
||||
const addLecture = (lecture: Lecture) => {
|
||||
setLectures([...lectures, lecture]);
|
||||
};
|
||||
const addGroup = (group: Group) => {
|
||||
setChoosenGroups([...choosenGroups, group]);
|
||||
};
|
||||
|
||||
return (
|
||||
<LecturesContext.Provider value={{ lectures, choosenGroups, addLecture, addGroup }}>
|
||||
{children}
|
||||
</LecturesContext.Provider>
|
||||
);
|
||||
};
|
@ -1,8 +1,6 @@
|
||||
export enum Types {
|
||||
addLecture = 'ADD_LECTURE',
|
||||
removeLecture = 'REMOVE_LECTURE',
|
||||
addGroup = 'ADD_GROUP',
|
||||
removeGroup = 'ADD_GROUP',
|
||||
addCourse = 'ADD_COURSE',
|
||||
removeCourse = 'REMOVE_COURSE',
|
||||
removecourse = 'REMOVE_COURSE',
|
||||
addGroup = 'ADD_GROUP',
|
||||
removeGroup = 'REMOVE_GROUP',
|
||||
}
|
||||
|
Reference in New Issue
Block a user