diff --git a/src/businesslogic/LecturesProvider.tsx b/src/businesslogic/LecturesProvider.tsx new file mode 100644 index 0000000..f599533 --- /dev/null +++ b/src/businesslogic/LecturesProvider.tsx @@ -0,0 +1,24 @@ +import React, { useState } from "react"; +import { Lecture } from "../lectures"; + +interface ILectureContext { + lectures: Array + updateLectures: (lectures: Lecture) => void +} +export const LecturesContext = React.createContext({lectures: Array(), updateLectures: (lectures: Lecture) => {}}); + +export const LecturesProvider : React.FC = (props) => { + + const [lectures, setLectures] = useState>([]); + + const updateLectures = (lecture : Lecture) => {setLectures([...lectures, lecture]); console.log(`Lectures xd are: ${JSON.stringify(lectures)}\n`)} + + return ( + + {props.children} + + ); + + +} + diff --git a/src/components/RightBar/index.tsx b/src/components/RightBar/index.tsx index 4cec1df..a3485e8 100644 --- a/src/components/RightBar/index.tsx +++ b/src/components/RightBar/index.tsx @@ -1,9 +1,10 @@ -import React, { useState } from "react"; +import React, { useState, useContext } from "react"; import "./index.scss"; import { Lecture } from "../../lectures"; import LectureCard from "./LectureCard"; import BusinessLogicContext from "../../businesslogic/BusinessLogicContext"; import { BuisnessProvided } from "../../businesslogic/BusinessLogicProvider"; +import { LecturesContext } from "../../businesslogic/LecturesProvider"; interface RightBarProps { onGroupMouseOver: (id: string, name: string) => void; @@ -14,6 +15,9 @@ interface RightBarProps { export default function RightBar({ lectures, onGroupMouseOver, onGroupClick }: RightBarProps) { const [selectedCardId, setSelectedCardId] = useState(null); + const lecturesContext = useContext(LecturesContext); + + const onCardClick = (e: React.MouseEvent) => { const target = e.currentTarget as HTMLElement; selectedCardId === target.id ? setSelectedCardId(null) : setSelectedCardId(target.id); @@ -28,7 +32,7 @@ export default function RightBar({ lectures, onGroupMouseOver, onGroupClick }: R Hubert WrzesiƄski

Semestr zimowy 2020/2021 - {lectures.map((lecture, index) => ( + {lecturesContext.lectures.map((lecture, index) => ( { const [input, setInput] = useState(""); const [data, setData] = useState>([]); const [open, setOpen] = React.useState(false); + const lecturesContext = useContext(LecturesContext); + + const handleChange = (event: React.ChangeEvent) => { setInput(event.target.value); //query should be updated on backend to not accept empty string @@ -39,6 +50,36 @@ export const Results: React.FC = () => { setOpen(false); }; + const onLectureClick = (e: React.MouseEvent) => { + const target = e.currentTarget as HTMLElement; + const id = target.id; + + const lecture = {name: "", groups: []} as Lecture; + + console.log(id); + axios + .get(`http://localhost:1287/getClassesByCourseId?id=${id}`) + .then((response) => { + for(let data of response.data){ + console.log("XDD"); + console.log(data); + let group = {} as Group; + lecture.name = data.course.name; + group.id = data.id; + group.day = data.day; + group.time = data.time; + group.lecturer = `${data.lecturer.title} ${data.lecturer.name} ${data.lecturer.surname}`; + group.room = data.room.trim(); + lecture.groups.push(group); + console.log("XDDD"); + console.log(lecture.groups); + lecturesContext.updateLectures(lecture); + } + + setOpen(false); + }); + } + return (
@@ -52,8 +93,8 @@ export const Results: React.FC = () => { {open ? (
{data.map((lecture, index) => ( -
-

{lecture.name}

+
+

{lecture.name}

))}
@@ -62,3 +103,4 @@ export const Results: React.FC = () => { ); }; + diff --git a/src/index.tsx b/src/index.tsx index 628c5bc..315593c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2,12 +2,15 @@ import React from "react"; import ReactDOM from "react-dom"; import App from "./App"; import BuisnessLogicProvider from "./businesslogic/BusinessLogicProvider"; +import { LecturesProvider } from "./businesslogic/LecturesProvider"; ReactDOM.render( <> + + , document.getElementById("root") ); diff --git a/src/lectures.ts b/src/lectures.ts index fbc7068..a1e714d 100644 --- a/src/lectures.ts +++ b/src/lectures.ts @@ -3,7 +3,7 @@ export interface Lecture { groups: Array; } -interface Group { +export interface Group { id: string; day: string; time: string;