All files / src/components SchedulerHistory.tsx

10% Statements 2/20
0% Branches 0/10
0% Functions 0/6
11.11% Lines 2/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55              1x                   1x                                                                          
import React, { useContext, useEffect, useState } from 'react';
import styled from 'styled-components';
import { coursesContext } from '../contexts/CoursesProvider';
import { SchedulerEvent } from '../types';
import { Scheduler } from './Scheduler';
import { SchedulerHistoryNavigation } from './SchedulerHistoryNavigation';
 
const Wrapper = styled.div`
  display: flex;
  flex-direction: column;
  width: 100%;
`;
 
interface SchedulerHistoryProps {
  schedulerHistoryEvents: Array<SchedulerEvent>;
}
 
export const SchedulerHistory = ({schedulerHistoryEvents}:SchedulerHistoryProps) => {
  const { timetableHistory, setHistoryBasketFromHistoryGroups } = useContext(coursesContext)!;
  const [currentTimetable, setCurrentTimetable] = useState(timetableHistory.length===0 ? 0 : timetableHistory.length - 1);
  let commisionDate = timetableHistory[currentTimetable]?.commisionDate;
 
  const SubstractCurrentTimetable = (value: number) => {
    if (currentTimetable > 0) {
      setCurrentTimetable((currentTimetable) => currentTimetable + value);
    }
  };
 
  const AddCurrentTimetable = (value: number) => {
    if (currentTimetable < timetableHistory.length - 1) {
      setCurrentTimetable((currentTimetable) => currentTimetable + value);
    }
  };
 
  useEffect(() => {
    const timetable = timetableHistory[currentTimetable];
    if (timetable) {
      const { groups } = timetable;
      setHistoryBasketFromHistoryGroups(groups);
    }
    else{
      setHistoryBasketFromHistoryGroups([]);
    }
  }, [currentTimetable,timetableHistory]);
 
  return (
    <Wrapper>
      {timetableHistory.length > 0 && (
        <SchedulerHistoryNavigation commisionDate={commisionDate} SubstractCurrentTimetable={SubstractCurrentTimetable} AddCurrentTimetable={AddCurrentTimetable} />
      )}
      <Scheduler schedulerEvents={schedulerHistoryEvents}/>
    </Wrapper>
  );
};