willba-component-library 0.2.32 → 0.2.33

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "willba-component-library",
3
- "version": "0.2.32",
3
+ "version": "0.2.33",
4
4
  "description": "A custom UI component library",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.esm.js",
@@ -54,7 +54,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
54
54
 
55
55
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
56
56
  const [overlappingDate, setOverlappingDate] = useState<
57
- DateRange | undefined
57
+ DateRange[] | undefined
58
58
  >(undefined)
59
59
 
60
60
  useMemo(() => {
@@ -73,7 +73,11 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
73
73
  (dateRange) => {
74
74
  const formattedFromDate = format(dateRange.from, dateFormat)
75
75
  if (availableDateMap.has(formattedFromDate)) {
76
- setOverlappingDate(dateRange)
76
+ if (!overlappingDate) {
77
+ setOverlappingDate([dateRange])
78
+ } else {
79
+ setOverlappingDate([...overlappingDate, dateRange])
80
+ }
77
81
 
78
82
  return {
79
83
  ...dateRange,
@@ -127,8 +131,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
127
131
  '.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)'
128
132
  )
129
133
 
130
- const tooltipClones: Element[] = []
134
+ const tooltipClonesCheckIn: Element[] = []
131
135
  const tooltipClonesCheckOut: Element[] = []
136
+ const tooltipClonesSpinner: Element[] = []
132
137
  const tooltipClonesOverlappingDates: Element[] = []
133
138
 
134
139
  if (calendarTooltip && calendarButtons.length > 0) {
@@ -137,7 +142,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
137
142
  true
138
143
  ) as Element
139
144
  element.appendChild(tooltipClone)
140
- tooltipClones.push(tooltipClone)
145
+ tooltipClonesCheckIn.push(tooltipClone)
141
146
  })
142
147
  }
143
148
 
@@ -152,7 +157,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
152
157
  }
153
158
 
154
159
  if (loadingSpinner && calendarMonthContainer) {
155
- calendarMonthContainer.appendChild(loadingSpinner)
160
+ const tooltipClone: Element = loadingSpinner.cloneNode(true) as Element
161
+ calendarMonthContainer.appendChild(tooltipClone)
162
+ tooltipClonesSpinner.push(tooltipClone)
156
163
  }
157
164
 
158
165
  if (
@@ -168,8 +175,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
168
175
  }
169
176
 
170
177
  return () => {
171
- tooltipClones.forEach((clone) => clone.remove())
178
+ tooltipClonesCheckIn.forEach((clone) => clone.remove())
172
179
  tooltipClonesCheckOut.forEach((clone) => clone.remove())
180
+ tooltipClonesSpinner.forEach((clone) => clone.remove())
173
181
  tooltipClonesOverlappingDates.forEach((clone) => clone.remove())
174
182
  }
175
183
  }, [
@@ -177,6 +185,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
177
185
  updateCalendarMonthNavigation,
178
186
  overlappingDate,
179
187
  initialCalendarRange,
188
+ updateCalendarDefaultMoth,
180
189
  ])
181
190
 
182
191
  return (
@@ -265,7 +274,11 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
265
274
  : [],
266
275
 
267
276
  overlappingDate:
268
- (!calendarRange?.from && overlappingDate?.from) || [],
277
+ (!calendarRange?.from &&
278
+ overlappingDate?.map((item) => ({
279
+ from: item.from,
280
+ }))) ||
281
+ [],
269
282
  }}
270
283
  />
271
284
 
@@ -302,7 +315,7 @@ const handleSelectedCheckIn = ({
302
315
  setCalendarRange: (range: DateRange | undefined) => void
303
316
  setDisabledDates: ((arg: Matcher[]) => void) | undefined
304
317
  calendarRange?: DateRange
305
- overlappingDate?: DateRange
318
+ overlappingDate?: DateRange[]
306
319
  }) => {
307
320
  // Calendar dates select logic
308
321
  const dateFormat = 'dd-MM-yyyy'
@@ -312,8 +325,14 @@ const handleSelectedCheckIn = ({
312
325
  ? format(calendarRange?.from, dateFormat)
313
326
  : null
314
327
 
315
- const overlappingDateFrom = overlappingDate?.from
316
- ? format(overlappingDate.from, dateFormat)
328
+ // const overlappingDateFrom = overlappingDate?.from
329
+ // ? format(overlappingDate.from, dateFormat)
330
+ // : null
331
+
332
+ const overlappingDateFrom = overlappingDate?.length
333
+ ? overlappingDate.find(
334
+ (date) => format(date.from || 1, dateFormat) === rangeFrom
335
+ )
317
336
  : null
318
337
 
319
338
  const checkOutRange = disableCalendarDates?.availableDates?.length
@@ -348,7 +367,8 @@ const handleSelectedCheckIn = ({
348
367
  if (
349
368
  (rangeTo && rangeFrom && rangeFrom === rangeTo) ||
350
369
  (!rangeTo && !rangeFrom) ||
351
- rangeFrom === overlappingDateFrom
370
+ // rangeFrom === overlappingDateFrom
371
+ overlappingDateFrom
352
372
  ) {
353
373
  setCalendarRange(undefined)
354
374
  setDisabledDates && setDisabledDates([])
@@ -1,5 +1,5 @@
1
1
  import { DateRange, Matcher } from 'react-day-picker'
2
- import { Palette } from 'src/themes/useTheme'
2
+ import { Palette } from '../../../themes/useTheme'
3
3
 
4
4
  export type CalendarOffset = {
5
5
  [key: string]: number