UNPKG

react-native-week-schedule-1

Version:
30 lines (27 loc) 737 B
import type { IData } from "react-native-week-schedule-1"; export const findConflicts = <T extends IData>(currentItem: T, items: T[]) => { const s1 = new Date(currentItem.date.split('.')[0] as string).getTime(); const e1 = new Date(s1 + (currentItem.duration * 60000)).getTime(); const conflicts = items.filter(item => { const s2 = new Date(item.date.split('.')[0] as string).getTime(); const e2 = new Date(s2 + (item.duration * 60000)).getTime(); return !((s1 < s2 && e1 <= s2) || (s2 < s1 && e2 <= s1)) }); return conflicts; }; /* crossing s1 s2 e1 e2 s1 s2 e2 e1 s2 s1 e2 e1 s12 e12 s12 e1 e2 s12 e2 e1 s1 s2 e12 s2 s1 e12 don't crossing s1 e1 s2 e2 s2 e2 s1 e1 s1 s2e1 e2 s2 s1e2 e1 */