react-weekly-schedule
Version:
 
23 lines (19 loc) • 558 B
text/typescript
import compareAsc from 'date-fns/compare_asc';
import _mergeRanges from 'merge-ranges';
import { ScheduleType } from '../types';
export function mergeRanges(event: ScheduleType): ScheduleType {
return _mergeRanges(
[...event].map(d => d.map(c => new Date(c)) as [Date, Date]),
);
}
export function mergeEvents(
event1: ScheduleType,
event2: ScheduleType | null,
): ScheduleType {
if (event2 === null) {
return event1;
}
return mergeRanges([...event1, ...event2]).sort((range1, range2) =>
compareAsc(range1[0], range2[0]),
);
}