Skip to content

Commit b59477a

Browse files
authored
fix(RangeCalendar): select dates only on a minimum mode (#18)
1 parent f109e42 commit b59477a

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/components/Calendar/hooks/useRangeCalendarState.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,19 @@ export function useRangeCalendarState(props: RangeCalendarStateOptions): RangeCa
2626
? makeRange(anchorDate, calendar.focusedDate, calendar.mode)
2727
: (value && makeRange(value.start, value.end, calendar.mode)) ?? undefined;
2828

29-
const selectDate = (date: DateTime) => {
30-
if (props.disabled || props.readOnly) {
29+
const minMode = calendar.availableModes[0];
30+
31+
const selectDate = (date: DateTime, force = false) => {
32+
if (props.disabled) {
33+
return;
34+
}
35+
36+
if (!force && calendar.mode !== minMode) {
37+
calendar.zoomIn();
38+
return;
39+
}
40+
41+
if (props.readOnly) {
3142
return;
3243
}
3344

@@ -53,9 +64,6 @@ export function useRangeCalendarState(props: RangeCalendarStateOptions): RangeCa
5364
anchorDate,
5465
setAnchorDate: setAnchorDateState,
5566
highlightedRange,
56-
selectFocusedDate() {
57-
selectDate(calendar.focusedDate);
58-
},
5967
isSelected(date) {
6068
if (!highlightedRange) {
6169
return false;

0 commit comments

Comments
 (0)