Checkpoint

This commit is contained in:
Maciek Głowacki
2020-08-23 16:02:52 +02:00
parent 3644b82e29
commit a1953064d9
7 changed files with 80 additions and 664 deletions

View File

@ -77,18 +77,22 @@ interface CourseCardProps {
export const CourseCard = ({ onCardClick, course, id, isSelected }: CourseCardProps) => {
const classes = useStyles();
const { addChoosenGroup, choosenCourses } = useContext(coursesContext)!;
const { addChoosenGroup, courses, choosenCourses } = useContext(coursesContext)!;
const onGroupClick = (group: Group) => addChoosenGroup(group);
const choosenCoursesIds = choosenCourses.map(({ id }) => id);
const choosenCoursesWithGroups = courses.filter(({ id }) => choosenCoursesIds.includes(id));
const onGroupClick = (group: Group, id: number) => addChoosenGroup(group, id);
return (
<CourseStyled onClick={onCardClick} id={id}>
<CourseNameStyled>{course.name}</CourseNameStyled>
<Collapse className={classes.expanded} in={isSelected} timeout="auto" unmountOnExit>
{choosenCourses.map((course) => (
{choosenCoursesWithGroups.map((course) => (
<div key={id}>
{course.groups.map((group, index) => (
<ClassGroupStyled key={index} onClick={() => onGroupClick(group)}>
{course.groups!.map((group, index) => (
<ClassGroupStyled key={index} onClick={() => onGroupClick(group, course.id)}>
<p>
{group.time} {group.room} <br></br> {group.lecturer}
</p>

View File

@ -38,10 +38,10 @@ const useStyles = makeStyles({
interface DropdownProps {
clearInput: boolean;
handleClearInput: ()=>void;
handleClearInput: () => void;
}
export const Dropdown = ({clearInput,handleClearInput}:DropdownProps) => {
export const Dropdown = ({ clearInput, handleClearInput }: DropdownProps) => {
const classes = useStyles();
const [open, setOpen] = React.useState(false);
@ -63,12 +63,12 @@ export const Dropdown = ({clearInput,handleClearInput}:DropdownProps) => {
filterCourses(input);
}, [input, open, choosenCourses]);
useEffect(()=>{
if(clearInput){
setInput('')
handleClearInput()
useEffect(() => {
if (clearInput) {
setInput('');
handleClearInput();
}
},[clearInput])
}, [clearInput]);
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => setInput(event.target.value);
@ -82,16 +82,14 @@ export const Dropdown = ({clearInput,handleClearInput}:DropdownProps) => {
const id = target.id;
const name = target.textContent;
const { data } = await axios.get(`${process.env.REACT_APP_API_URL}/getCourseGroups?id=${id}`);
//porozmawiać z Filipem, żeby odrobinę przerobił endpoint
const course: Course = {
const choosenCourse = {
name: name,
id: parseInt(id),
groups: data,
groups: [],
};
addChoosenCourse(course);
addChoosenCourse(choosenCourse);
setOpen(false);
}
};

View File

@ -16,7 +16,6 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
interface GroupTimeToEventRowMapping {
[time: string]: number;
}
//delete later additional mappings
const groupTimeToEventRowMapping: GroupTimeToEventRowMapping = {
'8.15': 0,
'10.00': 1,