Merge pull request 'you can add lectures now:' (#17) from add-lecture into master

Reviewed-on: http://git.plannaplan.pl/y0rune/frontend/pulls/17
Reviewed-by: wrzesinski-hubert <wrzesinski.hubert@gmail.com>
This commit is contained in:
wrzesinski-hubert 2020-08-26 18:42:46 +02:00
commit d30852b97d
5 changed files with 19 additions and 29 deletions

View File

@ -79,8 +79,6 @@ export const CourseCard = ({ onCardClick, course, id, isSelected }: CourseCardPr
const { addGroup } = useContext(coursesContext)!; const { addGroup } = useContext(coursesContext)!;
console.log(`course`);
console.log(course);
const onGroupClick = (group: Group, id: number) => addGroup(group, id); const onGroupClick = (group: Group, id: number) => addGroup(group, id);
return ( return (

View File

@ -83,7 +83,7 @@ export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => {
const name = target.textContent; const name = target.textContent;
//porozmawiać z Filipem, żeby odrobinę przerobił endpoint //porozmawiać z Filipem, żeby odrobinę przerobił endpoint
const course: Basket = { name: name, id: parseInt(id), lecture: null, classes: null }; const course: Basket = { name: name.trim(), id: parseInt(id), lecture: null, classes: null };
addToBasket(course); addToBasket(course);
setOpen(false); setOpen(false);

View File

@ -36,8 +36,8 @@ export const Rightbar = () => {
const { courses, basket } = useContext(coursesContext)!; const { courses, basket } = useContext(coursesContext)!;
const getBasketGroups = () => { const getBasketGroups = () => {
const ids = basket.map(({ id }) => id); const names = basket.map(({ name }) => name);
return courses.filter(({ id }) => ids.includes(id)); return courses.filter(({ name }) => names.includes(name));
}; };
const filteredCourses = getBasketGroups(); const filteredCourses = getBasketGroups();

View File

@ -2,6 +2,7 @@ import React, { useContext, useEffect, useState } from 'react';
import { SchedulerRow } from './SchedulerRow'; import { SchedulerRow } from './SchedulerRow';
import { coursesContext } from '../contexts/CoursesProvider'; import { coursesContext } from '../contexts/CoursesProvider';
import { Group, Basket } from '../types'; import { Group, Basket } from '../types';
import classes from '*.module.css';
interface SchedulerEventsProps { interface SchedulerEventsProps {
cellTop: number; cellTop: number;
@ -27,23 +28,20 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
useEffect(() => { useEffect(() => {
function mapGroupTimeToEventRow(basket: Array<Basket>) { function mapGroupTimeToEventRow(basket: Array<Basket>) {
const basketGroups = basket.map(({ classes, lecture }) => ({ const classes = basket.map(({ classes }) => classes).filter((cl) => cl !== null) as Array<Group>;
...classes, const lectures = basket.map(({ lecture }) => lecture).filter((lec) => lec !== null) as Array<Group>;
...lecture, const merged = [...classes, ...lectures];
})) as Array<Group>;
console.log('passed basket'); if (merged.length >= 1) {
console.log(basket); const groupsMapped = merged.map(({ id, day, lecturer, room, time }) => ({
console.log(`basketgroups`); id,
console.log(basketGroups); day,
const groupsMapped = basketGroups.map(({ id, day, lecturer, room, time }) => ({ lecturer,
id, room,
day, eventRow: groupTimeToEventRowMapping[time],
lecturer, }));
room, setChoosenGroupsMappedToEvents(groupsMapped);
eventRow: groupTimeToEventRowMapping[time], }
}));
setChoosenGroupsMappedToEvents(groupsMapped);
} }
mapGroupTimeToEventRow(basket); mapGroupTimeToEventRow(basket);
}, [basket]); }, [basket]);

View File

@ -44,14 +44,8 @@ export const CoursesProvider = ({ children }: CoursesProviderProps) => {
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
const { data: courses } = await axios.get(`${process.env.REACT_APP_API_URL}/getCourses`); const { data: courses } = await axios.get(`${process.env.REACT_APP_API_URL}/getCoursesWithGroups`);
courses.sort((a: Course, b: Course) => (a.name > b.name ? 1 : -1));
for (const course of courses) {
const { data: groups } = await axios.get(`${process.env.REACT_APP_API_URL}/getCourseGroups?id=${course.id}`);
//porozmawiać z Filipem, żeby odrobinę przerobił endpoint
course.groups = groups;
}
setCourses(courses); setCourses(courses);
}; };
fetchData(); fetchData();