UNPKG

@zag-js/date-utils

Version:

Date utilities for zag.js

31 lines (30 loc) 1.25 kB
// src/assertion.ts import { isSameDay, toCalendarDateTime } from "@internationalized/date"; function isDateEqual(dateA, dateB) { if (dateA == null || dateB == null) return dateA === dateB; if (!("hour" in dateA) && !("hour" in dateB)) return isSameDay(dateA, dateB); return toCalendarDateTime(dateA).compare(toCalendarDateTime(dateB)) === 0; } function isDateUnavailable(date, isUnavailable, locale, minValue, maxValue) { if (!date) return false; if (isUnavailable?.(date, locale)) return true; return isDateOutsideRange(date, minValue, maxValue); } function isDateOutsideRange(date, startDate, endDate) { return startDate != null && date.compare(startDate) < 0 || endDate != null && date.compare(endDate) > 0; } function isPreviousRangeInvalid(startDate, minValue, maxValue) { const prevDate = startDate.subtract({ days: 1 }); return isSameDay(prevDate, startDate) || isDateOutsideRange(prevDate, minValue, maxValue); } function isNextRangeInvalid(endDate, minValue, maxValue) { const nextDate = endDate.add({ days: 1 }); return isSameDay(nextDate, endDate) || isDateOutsideRange(nextDate, minValue, maxValue); } export { isDateEqual, isDateOutsideRange, isDateUnavailable, isNextRangeInvalid, isPreviousRangeInvalid };