From 7b6bcbfe22e53fb97eb094d7b65ef72dc72d8dcc Mon Sep 17 00:00:00 2001 From: zombiej Date: Mon, 8 Jun 2020 22:40:25 +0800 Subject: [PATCH] fix: WeekPicker range disabled logic --- src/hooks/useRangeDisabled.ts | 7 +++++-- tests/range.spec.tsx | 12 ++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) 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(); + }); });