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.js CHANGED
@@ -10846,26 +10846,37 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10846
10846
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10847
10847
  var _c = __read(React__default.useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
10848
10848
  React__default.useMemo(function () {
10849
- var _a, _b;
10850
10849
  if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
10851
10850
  var dateFormat_1 = 'dd-MM-yyyy';
10852
- var availableDateMap_1 = new Map();
10853
- (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
10854
- availableDateMap_1.set(format(available.lastCheckOut, dateFormat_1), available);
10855
- });
10856
- var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10851
+ var disabledDates_1 = disableCalendarDates.disabledDates;
10852
+ var _a = (disabledDates_1 || []).reduce(function (acc, dateRange) {
10857
10853
  var formattedFromDate = format(dateRange.from, dateFormat_1);
10858
- if (availableDateMap_1.has(formattedFromDate)) {
10859
- if (!overlappingDate) {
10860
- setOverlappingDate([dateRange]);
10861
- }
10862
- else {
10863
- setOverlappingDate(__spreadArray$1(__spreadArray$1([], __read(overlappingDate), false), [dateRange], false));
10864
- }
10865
- return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10854
+ var hasTwoOverlappingDates = disabledDates_1 === null || disabledDates_1 === void 0 ? void 0 : disabledDates_1.some(function (item) {
10855
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10856
+ format(item.to, dateFormat_1) === formattedFromDate;
10857
+ });
10858
+ var hasOneOverlappingDate = disabledDates_1 === null || disabledDates_1 === void 0 ? void 0 : disabledDates_1.some(function (item) {
10859
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10860
+ format(item.to, dateFormat_1) !== formattedFromDate;
10861
+ });
10862
+ if (hasTwoOverlappingDates) {
10863
+ acc.newOverlappingDates.push(dateRange);
10866
10864
  }
10867
- return dateRange;
10868
- });
10865
+ else if (hasOneOverlappingDate) {
10866
+ acc.newOverlappingDates.push(dateRange);
10867
+ acc.updatedDisabledDates.push(__assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) }));
10868
+ }
10869
+ else {
10870
+ acc.updatedDisabledDates.push(dateRange);
10871
+ }
10872
+ return acc;
10873
+ }, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _a.updatedDisabledDates, newOverlappingDates_1 = _a.newOverlappingDates;
10874
+ if (newOverlappingDates_1.length) {
10875
+ setOverlappingDate(function (prev) {
10876
+ if (prev === void 0) { prev = []; }
10877
+ return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
10878
+ });
10879
+ }
10869
10880
  disableCalendarDates.disabledDates = updatedDisabledDates;
10870
10881
  }
10871
10882
  }, [disableCalendarDates]);
@@ -11016,9 +11027,6 @@ var handleSelectedCheckIn = function (_a) {
11016
11027
  var calendarFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
11017
11028
  ? format(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from, dateFormat)
11018
11029
  : null;
11019
- // const overlappingDateFrom = overlappingDate?.from
11020
- // ? format(overlappingDate.from, dateFormat)
11021
- // : null
11022
11030
  var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
11023
11031
  ? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
11024
11032
  : null;
@@ -11043,7 +11051,6 @@ var handleSelectedCheckIn = function (_a) {
11043
11051
  }
11044
11052
  if ((rangeTo && rangeFrom && rangeFrom === rangeTo) ||
11045
11053
  (!rangeTo && !rangeFrom) ||
11046
- // rangeFrom === overlappingDateFrom
11047
11054
  overlappingDateFrom) {
11048
11055
  setCalendarRange(undefined);
11049
11056
  setDisabledDates && setDisabledDates([]);