Classes display correctly, still need to work on lectures:
This commit is contained in:
		@@ -77,28 +77,22 @@ interface CourseCardProps {
 | 
			
		||||
export const CourseCard = ({ onCardClick, course, id, isSelected }: CourseCardProps) => {
 | 
			
		||||
  const classes = useStyles();
 | 
			
		||||
 | 
			
		||||
  const { addChoosenGroup, courses, choosenCourses } = useContext(coursesContext)!;
 | 
			
		||||
  const { addGroup } = useContext(coursesContext)!;
 | 
			
		||||
 | 
			
		||||
  const choosenCoursesIds = choosenCourses.map(({ id }) => id);
 | 
			
		||||
 | 
			
		||||
  const choosenCoursesWithGroups = courses.filter(({ id }) => choosenCoursesIds.includes(id));
 | 
			
		||||
 | 
			
		||||
  const onGroupClick = (group: Group, id: number) => addChoosenGroup(group, id);
 | 
			
		||||
  console.log(`course`);
 | 
			
		||||
  console.log(course);
 | 
			
		||||
  const onGroupClick = (group: Group, id: number) => addGroup(group, id);
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <CourseStyled onClick={onCardClick} id={id}>
 | 
			
		||||
      <CourseNameStyled>{course.name}</CourseNameStyled>
 | 
			
		||||
      <Collapse className={classes.expanded} in={isSelected} timeout="auto" unmountOnExit>
 | 
			
		||||
        {choosenCoursesWithGroups.map((course) => (
 | 
			
		||||
          <div key={id}>
 | 
			
		||||
            {course.groups!.map((group, index) => (
 | 
			
		||||
              <ClassGroupStyled key={index} onClick={() => onGroupClick(group, course.id)}>
 | 
			
		||||
                <p>
 | 
			
		||||
                  {group.time} {group.room} <br></br> {group.lecturer}
 | 
			
		||||
                </p>
 | 
			
		||||
              </ClassGroupStyled>
 | 
			
		||||
            ))}
 | 
			
		||||
          </div>
 | 
			
		||||
        {course.groups.map((group, index) => (
 | 
			
		||||
          <ClassGroupStyled key={index} onClick={() => onGroupClick(group, course.id)}>
 | 
			
		||||
            <p>
 | 
			
		||||
              {group.time} {group.room} <br></br> {group.lecturer}
 | 
			
		||||
            </p>
 | 
			
		||||
          </ClassGroupStyled>
 | 
			
		||||
        ))}
 | 
			
		||||
      </Collapse>
 | 
			
		||||
      <div onClick={onCardClick} id={id}>
 | 
			
		||||
 
 | 
			
		||||
@@ -50,18 +50,18 @@ export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => {
 | 
			
		||||
  //courses - choosenCourses
 | 
			
		||||
  const [filteredCourses, setFilteredCourses] = useState<Array<Course>>([]);
 | 
			
		||||
 | 
			
		||||
  const { courses, choosenCourses, addToBasket } = useContext(coursesContext)!;
 | 
			
		||||
  const { courses, basket, addToBasket } = useContext(coursesContext)!;
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    const filterCourses = (input: string) => {
 | 
			
		||||
      const choosenCoursesNames = choosenCourses.map(({ name }) => name.trim());
 | 
			
		||||
      const choosenCoursesNames = basket.map(({ name }) => name.trim());
 | 
			
		||||
      const filteredCourses = courses.filter(
 | 
			
		||||
        ({ name }) => name.toLowerCase().includes(input.toLowerCase()) && !choosenCoursesNames.includes(name),
 | 
			
		||||
      );
 | 
			
		||||
      setFilteredCourses(filteredCourses);
 | 
			
		||||
    };
 | 
			
		||||
    filterCourses(input);
 | 
			
		||||
  }, [input, open, choosenCourses]);
 | 
			
		||||
  }, [input, open, basket]);
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    if (clearInput) {
 | 
			
		||||
@@ -83,7 +83,7 @@ export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => {
 | 
			
		||||
      const name = target.textContent;
 | 
			
		||||
 | 
			
		||||
      //porozmawiać z Filipem, żeby odrobinę przerobił endpoint
 | 
			
		||||
      const course: Basket = { name: name, id: parseInt(id), lecture: null, class: null };
 | 
			
		||||
      const course: Basket = { name: name, id: parseInt(id), lecture: null, classes: null };
 | 
			
		||||
 | 
			
		||||
      addToBasket(course);
 | 
			
		||||
      setOpen(false);
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,14 @@ const RightbarTextStyled = styled.div`
 | 
			
		||||
export const Rightbar = () => {
 | 
			
		||||
  const [selectedCardId, setSelectedCardId] = useState<string | null>(null);
 | 
			
		||||
 | 
			
		||||
  const { choosenCourses } = useContext(coursesContext)!;
 | 
			
		||||
  const { courses, basket } = useContext(coursesContext)!;
 | 
			
		||||
 | 
			
		||||
  const getBasketGroups = () => {
 | 
			
		||||
    const ids = basket.map(({ id }) => id);
 | 
			
		||||
    return courses.filter(({ id }) => ids.includes(id));
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const filteredCourses = getBasketGroups();
 | 
			
		||||
 | 
			
		||||
  //działa clunky
 | 
			
		||||
  const onCardClick = (event: MouseEvent) => {
 | 
			
		||||
@@ -48,7 +55,7 @@ export const Rightbar = () => {
 | 
			
		||||
        Hubert Wrzesiński<br></br>
 | 
			
		||||
        Semestr zimowy 2020/2021
 | 
			
		||||
      </RightbarTextStyled>
 | 
			
		||||
      {choosenCourses.map((course, index) => (
 | 
			
		||||
      {filteredCourses.map((course, index) => (
 | 
			
		||||
        <CourseCard
 | 
			
		||||
          course={course}
 | 
			
		||||
          key={index}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
import React, { useContext, useEffect, useState } from 'react';
 | 
			
		||||
import { SchedulerRow } from './SchedulerRow';
 | 
			
		||||
import { coursesContext } from '../contexts/CoursesProvider';
 | 
			
		||||
import { Group } from '../types';
 | 
			
		||||
import { Group, Basket } from '../types';
 | 
			
		||||
 | 
			
		||||
interface SchedulerEventsProps {
 | 
			
		||||
  cellTop: number;
 | 
			
		||||
@@ -9,7 +9,7 @@ interface SchedulerEventsProps {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) => {
 | 
			
		||||
  const { choosenGroups } = useContext(coursesContext)!;
 | 
			
		||||
  const { basket } = useContext(coursesContext)!;
 | 
			
		||||
 | 
			
		||||
  const [choosenGroupsMappedToEvents, setChoosenGroupsMappedToEvents] = useState<any>([]);
 | 
			
		||||
 | 
			
		||||
@@ -26,8 +26,17 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    function mapGroupTimeToEventRow(choosenGroups: Array<Group>) {
 | 
			
		||||
      const groupsMapped = choosenGroups.map(({ id, day, lecturer, room, time }) => ({
 | 
			
		||||
    function mapGroupTimeToEventRow(basket: Array<Basket>) {
 | 
			
		||||
      const basketGroups = basket.map(({ classes, lecture }) => ({
 | 
			
		||||
        ...classes,
 | 
			
		||||
        ...lecture,
 | 
			
		||||
      })) as Array<Group>;
 | 
			
		||||
 | 
			
		||||
      console.log('passed basket');
 | 
			
		||||
      console.log(basket);
 | 
			
		||||
      console.log(`basketgroups`);
 | 
			
		||||
      console.log(basketGroups);
 | 
			
		||||
      const groupsMapped = basketGroups.map(({ id, day, lecturer, room, time }) => ({
 | 
			
		||||
        id,
 | 
			
		||||
        day,
 | 
			
		||||
        lecturer,
 | 
			
		||||
@@ -36,8 +45,8 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
 | 
			
		||||
      }));
 | 
			
		||||
      setChoosenGroupsMappedToEvents(groupsMapped);
 | 
			
		||||
    }
 | 
			
		||||
    mapGroupTimeToEventRow(choosenGroups);
 | 
			
		||||
  }, [choosenGroups]);
 | 
			
		||||
    mapGroupTimeToEventRow(basket);
 | 
			
		||||
  }, [basket]);
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user