willba-component-library 0.2.33 → 0.2.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.esm.js CHANGED
@@ -10826,26 +10826,37 @@ var Calendar = forwardRef(function (_a, ref) {
10826
10826
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10827
10827
  var _c = __read(useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
10828
10828
  useMemo(function () {
10829
- var _a, _b;
10830
10829
  if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
10831
10830
  var dateFormat_1 = 'dd-MM-yyyy';
10832
- var availableDateMap_1 = new Map();
10833
- (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
10834
- availableDateMap_1.set(format(available.lastCheckOut, dateFormat_1), available);
10835
- });
10836
- var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10831
+ var disabledDates_1 = disableCalendarDates.disabledDates;
10832
+ var _a = (disabledDates_1 || []).reduce(function (acc, dateRange) {
10837
10833
  var formattedFromDate = format(dateRange.from, dateFormat_1);
10838
- if (availableDateMap_1.has(formattedFromDate)) {
10839
- if (!overlappingDate) {
10840
- setOverlappingDate([dateRange]);
10841
- }
10842
- else {
10843
- setOverlappingDate(__spreadArray$1(__spreadArray$1([], __read(overlappingDate), false), [dateRange], false));
10844
- }
10845
- return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10834
+ var hasTwoOverlappingDates = disabledDates_1 === null || disabledDates_1 === void 0 ? void 0 : disabledDates_1.some(function (item) {
10835
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10836
+ format(item.to, dateFormat_1) === formattedFromDate;
10837
+ });
10838
+ var hasOneOverlappingDate = disabledDates_1 === null || disabledDates_1 === void 0 ? void 0 : disabledDates_1.some(function (item) {
10839
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10840
+ format(item.to, dateFormat_1) !== formattedFromDate;
10841
+ });
10842
+ if (hasTwoOverlappingDates) {
10843
+ acc.newOverlappingDates.push(dateRange);
10846
10844
  }
10847
- return dateRange;
10848
- });
10845
+ else if (hasOneOverlappingDate) {
10846
+ acc.newOverlappingDates.push(dateRange);
10847
+ acc.updatedDisabledDates.push(__assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) }));
10848
+ }
10849
+ else {
10850
+ acc.updatedDisabledDates.push(dateRange);
10851
+ }
10852
+ return acc;
10853
+ }, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _a.updatedDisabledDates, newOverlappingDates_1 = _a.newOverlappingDates;
10854
+ if (newOverlappingDates_1.length) {
10855
+ setOverlappingDate(function (prev) {
10856
+ if (prev === void 0) { prev = []; }
10857
+ return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
10858
+ });
10859
+ }
10849
10860
  disableCalendarDates.disabledDates = updatedDisabledDates;
10850
10861
  }
10851
10862
  }, [disableCalendarDates]);
@@ -10996,9 +11007,6 @@ var handleSelectedCheckIn = function (_a) {
10996
11007
  var calendarFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
10997
11008
  ? format(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from, dateFormat)
10998
11009
  : null;
10999
- // const overlappingDateFrom = overlappingDate?.from
11000
- // ? format(overlappingDate.from, dateFormat)
11001
- // : null
11002
11010
  var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
11003
11011
  ? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
11004
11012
  : null;
@@ -11023,7 +11031,6 @@ var handleSelectedCheckIn = function (_a) {
11023
11031
  }
11024
11032
  if ((rangeTo && rangeFrom && rangeFrom === rangeTo) ||
11025
11033
  (!rangeTo && !rangeFrom) ||
11026
- // rangeFrom === overlappingDateFrom
11027
11034
  overlappingDateFrom) {
11028
11035
  setCalendarRange(undefined);
11029
11036
  setDisabledDates && setDisabledDates([]);