diff --git a/src/hooks/useRangeDisabled.ts b/src/hooks/useRangeDisabled.ts index 917f3bb29..cd3aa13a6 100644 --- a/src/hooks/useRangeDisabled.ts +++ b/src/hooks/useRangeDisabled.ts @@ -45,10 +45,13 @@ export default function useRangeDisabled({ if (startDate) { if (picker === 'week') { + const startYear = generateConfig.getYear(startDate); + const dateYear = generateConfig.getYear(date); const startWeek = generateConfig.locale.getWeek(locale.locale, startDate); const dateWeek = generateConfig.locale.getWeek(locale.locale, date); - - return dateWeek < startWeek; + const startVal = startYear * 100 + startWeek; + const dateVal = dateYear * 100 + dateWeek; + return dateVal < startVal; } if (picker === 'quarter') { diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index 9dbefaeb2..aea19fcb4 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -1143,4 +1143,16 @@ describe('Picker.Range', () => { }); }); }); + + it('should not disabled when week picker in diff year', () => { + const wrapper = mount( + , + ); + + wrapper.openPicker(1); + expect(wrapper.findCell('15').hasClass('rc-picker-cell-disabled')).toBeFalsy(); + }); });