fix(chatelet): let a min-stay range extend forward (reka span guard) #158

Merged
padreug merged 1 commit from fix/chatelet-min-nights-range-spanning into dev 2026-09-21 12:32:09 +00:00
Owner

The stay picker enforced min_nights by disabling the days between check-in
and check-in + min_nights. reka-ui refuses to complete a range that spans a
disabled day, so on a 2-night-minimum room every forward check-out was
unreachable: the guest picked a check-in and could then only click an
earlier day, which reka swapped into the range (the "calendar jumps
backwards" report). One-night-minimum rooms were unaffected — why the
Orangery Suite worked and the Tour Room didn't.

Stop disabling the in-window days; enforce the minimum in onModel instead:
a too-short range keeps the check-in and clears the check-out, resetting
reka's controlled model directly. Occupied nights past the next booking
still cap the range, and #157's check-in validity guard is unchanged.

Verified headlessly on min-1 and min-2 rooms, empty and with a blocked
night: forward completes, exact-minimum completes, below-minimum is
rejected, the boundary check-out is reachable, and the quote is correct.

The stay picker enforced min_nights by disabling the days between check-in and check-in + min_nights. reka-ui refuses to complete a range that spans a disabled day, so on a 2-night-minimum room every forward check-out was unreachable: the guest picked a check-in and could then only click an earlier day, which reka swapped into the range (the "calendar jumps backwards" report). One-night-minimum rooms were unaffected — why the Orangery Suite worked and the Tour Room didn't. Stop disabling the in-window days; enforce the minimum in onModel instead: a too-short range keeps the check-in and clears the check-out, resetting reka's controlled model directly. Occupied nights past the next booking still cap the range, and #157's check-in validity guard is unchanged. Verified headlessly on min-1 and min-2 rooms, empty and with a blocked night: forward completes, exact-minimum completes, below-minimum is rejected, the boundary check-out is reachable, and the quote is correct.
The stay picker enforced min_nights by disabling the days between check-in
and check-in + min_nights. reka-ui refuses to *complete* a range that spans
a disabled day, so on a 2-night-minimum room every forward check-out was
unreachable: the guest picked a check-in and could then only click an
earlier day, which reka swapped into the range (the 'calendar jumps
backwards' report). One-night-minimum rooms were unaffected, which is why
the Orangery Suite worked and the Tour Room didn't.

Stop disabling the in-window days. Enforce the minimum in onModel instead:
a too-short range keeps the check-in and clears the check-out, resetting
reka's controlled model directly (checkOut is already '' so the props watch
won't fire, and reka's highlighted end would otherwise linger). Occupied
nights past the next booking still cap the range, and #157's check-in
validity guard is unchanged.

Verified headlessly on min-1 and min-2 rooms, empty and with a blocked
night: forward selection completes, exact-minimum completes, below-minimum
is rejected, the boundary check-out is reachable, and the quote is correct.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
padreug deleted branch fix/chatelet-min-nights-range-spanning 2026-09-21 12:32:10 +00:00
Sign in to join this conversation.
No description provided.