import { dt } from "../dt" import type { Dayjs } from "../dt" export function hasOverlappingDates( dateRangeItem: { startDate: Date | Dayjs | string | undefined | null endDate: Date | Dayjs | string | undefined | null }, fromDate: Date | Dayjs, toDate: Date | Dayjs ) { const startDate = dt(fromDate) const endDate = dt(toDate) if (dateRangeItem.endDate && dateRangeItem.startDate) { const itemStartDate = dt(dateRangeItem.startDate) const itemEndDate = dt(dateRangeItem.endDate) const fromDateIsBetweenItemDates = startDate.isBetween( itemStartDate, itemEndDate, "date", "[]" ) const toDateIsBetweenItemDates = endDate.isBetween( itemStartDate, itemEndDate, "date", "[]" ) const itemFullyContained = startDate.isSameOrBefore(itemStartDate, "date") && endDate.isSameOrAfter(itemEndDate, "date") return ( fromDateIsBetweenItemDates || toDateIsBetweenItemDates || itemFullyContained ) } return true }