frontend/src/businesslogic/LecturesProvider.tsx

34 lines
971 B
TypeScript
Raw Normal View History

2020-08-09 20:44:35 +02:00
import React, { useState } from "react";
2020-07-24 18:59:45 +02:00
import { Lecture } from "./types/lecture";
2020-07-30 18:06:27 +02:00
import { Group } from "./types/group";
2020-06-30 22:09:13 +02:00
interface ILectureContext {
2020-07-24 18:59:45 +02:00
lectures: Array<Lecture>;
2020-08-09 20:44:35 +02:00
addLecture: (lectures: Lecture) => void;
2020-06-30 22:09:13 +02:00
}
2020-07-24 18:59:45 +02:00
export const LecturesContext = React.createContext({
lectures: Array<Lecture>(),
2020-07-30 18:06:27 +02:00
choosenGroups: Array<Group>(),
2020-08-09 20:44:35 +02:00
addLecture: (lecture: Lecture) => {},
addGroup: (group : Group) => {}
2020-07-24 18:59:45 +02:00
});
export const LecturesProvider: React.FC = (props) => {
const [lectures, setLectures] = useState<Array<Lecture>>([]);
2020-07-30 18:06:27 +02:00
const [choosenGroups, setChoosenGroups] = useState<Array<Group>>([]);
2020-08-09 20:44:35 +02:00
const addLecture = (lecture: Lecture) => {
2020-07-24 18:59:45 +02:00
setLectures([...lectures, lecture]);
};
2020-08-09 20:44:35 +02:00
const addGroup = (group : Group) => {
2020-07-30 18:06:27 +02:00
setChoosenGroups([...choosenGroups, group]);
};
2020-07-24 18:59:45 +02:00
return (
<LecturesContext.Provider
2020-08-09 20:44:35 +02:00
value={{ lectures, choosenGroups, addLecture, addGroup }}
2020-07-24 18:59:45 +02:00
>
{props.children}
</LecturesContext.Provider>
);
};