diff --git a/src/components/Dropdown.tsx b/src/components/Dropdown.tsx index f107b2a..76d41b6 100644 --- a/src/components/Dropdown.tsx +++ b/src/components/Dropdown.tsx @@ -3,7 +3,7 @@ import axios from 'axios'; import { Input } from '@material-ui/core'; import ClickAwayListener from '@material-ui/core/ClickAwayListener'; import { coursesContext } from '../contexts/CoursesProvider'; -import { Course } from '../types'; +import { Course, Basket } from '../types'; import styled from 'styled-components'; import { makeStyles } from '@material-ui/core/styles'; @@ -50,7 +50,7 @@ export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => { //courses - choosenCourses const [filteredCourses, setFilteredCourses] = useState>([]); - const { courses, choosenCourses, addChoosenCourse } = useContext(coursesContext)!; + const { courses, choosenCourses, addToBasket } = useContext(coursesContext)!; useEffect(() => { const filterCourses = (input: string) => { @@ -83,13 +83,9 @@ export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => { const name = target.textContent; //porozmawiać z Filipem, żeby odrobinę przerobił endpoint - const choosenCourse = { - name: name, - id: parseInt(id), - groups: [], - }; + const course: Basket = { name: name, id: parseInt(id), lecture: null, class: null }; - addChoosenCourse(choosenCourse); + addToBasket(course); setOpen(false); } }; diff --git a/src/contexts/CoursesProvider.tsx b/src/contexts/CoursesProvider.tsx index 2d77f71..a9c591c 100644 --- a/src/contexts/CoursesProvider.tsx +++ b/src/contexts/CoursesProvider.tsx @@ -1,13 +1,13 @@ import React, { useState, createContext, useEffect } from 'react'; -import { Course, Group, CourseBasket } from '../types'; +import { Course, Group, Basket } from '../types'; import axios from 'axios'; interface CourseContext { courses: Array; choosenCourses: Array; choosenGroups: Array; - coursesBasket: Array; - addChoosenCourse: (courses: Course) => void; + basket: Array; + addToBasket: (courses: Basket) => void; addChoosenGroup: (group: Group, id: number) => void; } export const coursesContext = createContext(null); @@ -19,14 +19,17 @@ interface CoursesProviderProps { export const CoursesProvider = ({ children }: CoursesProviderProps) => { //fetch courses with groups const [courses, setCourses] = useState>([]); - const [coursesBasket, setCoursesBasket] = useState>([]); + const [basket, setBasket] = useState>([]); //with groups const [choosenCourses, setChoosenCourses] = useState>([]); const [choosenGroups, setChoosenGroups] = useState>([]); - const addChoosenCourse = (choosenCourse: Course) => { - setChoosenCourses([...choosenCourses, choosenCourse]); - }; + const addToBasket = (course: Basket) => setBasket([...basket, course]); + + useEffect(() => { + console.log(basket); + }, [basket]); + const addChoosenGroup = (choosenGroup: Group, id: number) => { //move to utilities //change type to group type from api @@ -76,7 +79,7 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => { }, []); return ( - + {children} ); diff --git a/src/contexts/reducers.ts b/src/contexts/reducers.ts index 328938d..14a0316 100644 --- a/src/contexts/reducers.ts +++ b/src/contexts/reducers.ts @@ -1,14 +1,14 @@ // import { Group, Course } from '../types'; export enum Types { - addChoosenCourse = 'ADD_CHOOSEN_COURSE', + addToBasket = 'ADD_CHOOSEN_COURSE', removeChoosenCourse = 'REMOVE_CHOOSEN_COURSE', addChoosenGroup = 'ADD_CHOOSEN_GROUP', removeChoosenGroup = 'REMOVE_CHOOSEN_GROUP', } // type ChoosenCoursesPayload = { -// [Types.addChoosenCourse]: {}; +// [Types.addToBasket]: {}; // }; // type ChoosenGroupsPayload = { diff --git a/src/types/index.ts b/src/types/index.ts index 40adcdc..9846d9d 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -3,7 +3,7 @@ const CLASS = 'class'; export type GroupType = typeof COURSE | typeof CLASS; -export interface CourseBasket { +export interface Basket { id: number; name: string; lecture: Group | null;