More refactoring
This commit is contained in:
@ -11,7 +11,7 @@ interface SchedulerEventsProps {
|
||||
export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) => {
|
||||
const { choosenGroups } = useContext(coursesContext)!;
|
||||
|
||||
const [groupsMappedToEvents, setGroupsMappedToEvents] = useState<any>([]);
|
||||
const [choosenGroupsMappedToEvents, setChoosenGroupsMappedToEvents] = useState<any>([]);
|
||||
|
||||
interface GroupTimeToEventRowMapping {
|
||||
[time: string]: number;
|
||||
@ -29,22 +29,7 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
function mapGroupTimeToEventRow(groups: Array<Group>) {
|
||||
const groupsMappedToEventsTemp = [];
|
||||
for (const group of groups) {
|
||||
const groupTime = group.time;
|
||||
const eventRow: number = groupTimeToEventRowMapping[groupTime];
|
||||
const groupMappedToEvent: any = {
|
||||
id: group.id,
|
||||
day: group.day,
|
||||
eventRow: eventRow,
|
||||
lecturer: group.lecturer,
|
||||
room: group.room,
|
||||
};
|
||||
setGroupsMappedToEvents((groupsMappedToEvents: any) => [...groupsMappedToEvents, groupMappedToEvent]);
|
||||
}
|
||||
}
|
||||
function alternative(choosenGroups: Array<Group>) {
|
||||
function mapGroupTimeToEventRow(choosenGroups: Array<Group>) {
|
||||
const groupsMapped = choosenGroups.map(({ id, day, lecturer, room, time }) => ({
|
||||
id,
|
||||
day,
|
||||
@ -52,9 +37,9 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
|
||||
room,
|
||||
eventRow: groupTimeToEventRowMapping[time],
|
||||
}));
|
||||
setGroupsMappedToEvents(groupsMapped);
|
||||
setChoosenGroupsMappedToEvents(groupsMapped);
|
||||
}
|
||||
alternative(choosenGroups);
|
||||
mapGroupTimeToEventRow(choosenGroups);
|
||||
}, [choosenGroups]);
|
||||
|
||||
return (
|
||||
@ -62,7 +47,7 @@ export const SchedulerEvents = ({ cellTop, cellWidth }: SchedulerEventsProps) =>
|
||||
{[...Array(6)].map((_, index) => (
|
||||
<SchedulerRow
|
||||
key={index}
|
||||
groups={groupsMappedToEvents.filter((group: any) => {
|
||||
groups={choosenGroupsMappedToEvents.filter((group: any) => {
|
||||
return group.eventRow === index;
|
||||
})}
|
||||
indexRow={index}
|
||||
|
@ -26,21 +26,20 @@ interface SchedulerRowProps {
|
||||
}
|
||||
|
||||
export const SchedulerRow = ({ groups, indexRow, cellTop, cellWidth }: SchedulerRowProps) => {
|
||||
// console.log(`You passed me these of a groupzzz`);
|
||||
// console.log(groups)
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
{[...Array(5)].map((value, eventIndex) => (
|
||||
{[...Array(5)].map((_, eventIndex) => (
|
||||
<SchedulerEvent
|
||||
eventIndex={eventIndex}
|
||||
cellTop={cellTop}
|
||||
cellWidth={cellWidth}
|
||||
key={`eventRow${indexRow}eventCol${eventIndex}`}
|
||||
key={eventIndex}
|
||||
id={`eventRow${indexRow}eventCol${eventIndex}`}
|
||||
>
|
||||
{groups.map((group, index) =>
|
||||
group.day === eventIndex ? <div key={index}>{groups[index]?.lecturer}</div> : null,
|
||||
group.day === eventIndex && <div key={index}>{groups[index]?.lecturer}</div>,
|
||||
)}
|
||||
</SchedulerEvent>
|
||||
))}
|
||||
|
Reference in New Issue
Block a user