diff --git a/src/modules/chatelet/components/StayDatePicker.vue b/src/modules/chatelet/components/StayDatePicker.vue index 2cb3ae2..3c2ee0e 100644 --- a/src/modules/chatelet/components/StayDatePicker.vue +++ b/src/modules/chatelet/components/StayDatePicker.vue @@ -106,19 +106,8 @@ function isDateDisabled(d: DateValue): boolean { if (y < todayYmd) return true const start = activeStart.value if (!start) { - // Picking a check-in. An occupied night is out — except a committed - // check-out that landed on one, which must stay rendered as selected. - if (props.nightSet.has(y)) return !(bothSet.value && y === props.checkOut) - // A free day is only a valid check-in if a minimum stay fits before the - // next occupied night AND within the loaded window. Otherwise reka would - // offer it, then strand the guest with no reachable check-out (every - // later day disabled), so the only click left is an earlier day, which - // reka silently swaps into the range. Disable it up front instead. - const minCheckOut = addDays(y, props.minNights) - const nextOccupied = nextUnavailableOnOrAfter(props.nights, y) - if (nextOccupied && nextOccupied < minCheckOut) return true - if (props.maxDate && minCheckOut > props.maxDate) return true - return false + // Picking a check-in: occupied nights are out; everything else is fair. + return props.nightSet.has(y) && !(bothSet.value && y === props.checkOut) } if (y === start) return false if (y > start) {