Skip to content

Commit 1e2ffc9

Browse files
authored
fix: WeekPicker range disabled logic (#81)
1 parent 91efd93 commit 1e2ffc9

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/hooks/useRangeDisabled.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ export default function useRangeDisabled<DateType>({
4545

4646
if (startDate) {
4747
if (picker === 'week') {
48+
const startYear = generateConfig.getYear(startDate);
49+
const dateYear = generateConfig.getYear(date);
4850
const startWeek = generateConfig.locale.getWeek(locale.locale, startDate);
4951
const dateWeek = generateConfig.locale.getWeek(locale.locale, date);
50-
51-
return dateWeek < startWeek;
52+
const startVal = startYear * 100 + startWeek;
53+
const dateVal = dateYear * 100 + dateWeek;
54+
return dateVal < startVal;
5255
}
5356

5457
if (picker === 'quarter') {

tests/range.spec.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,4 +1143,16 @@ describe('Picker.Range', () => {
11431143
});
11441144
});
11451145
});
1146+
1147+
it('should not disabled when week picker in diff year', () => {
1148+
const wrapper = mount(
1149+
<MomentRangePicker
1150+
picker="week"
1151+
defaultValue={[getMoment('2000-12-15'), getMoment('2021-02-03')]}
1152+
/>,
1153+
);
1154+
1155+
wrapper.openPicker(1);
1156+
expect(wrapper.findCell('15').hasClass('rc-picker-cell-disabled')).toBeFalsy();
1157+
});
11461158
});

0 commit comments

Comments
 (0)