From 0da3ebdaaca6e7d6537c01ac2738429a607a3f29 Mon Sep 17 00:00:00 2001 From: zombiej Date: Fri, 15 May 2020 14:55:39 +0800 Subject: [PATCH 1/3] fix disabled today --- src/PickerPanel.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/PickerPanel.tsx b/src/PickerPanel.tsx index 3c7d503b7..99f378fdb 100644 --- a/src/PickerPanel.tsx +++ b/src/PickerPanel.tsx @@ -459,11 +459,16 @@ function PickerPanel(props: PickerPanelProps) { let todayNode: React.ReactNode; if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) { + const now = generateConfig.getNow(); + const todayCls = `${prefixCls}-today-btn`; + const disabled = disabledDate && disabledDate(now); todayNode = ( { - triggerSelect(generateConfig.getNow(), 'mouse', true); + if (!disabled) { + triggerSelect(now, 'mouse', true); + } }} > {locale.today} From 738300d7ebbf0bb02ea8005325ca952565c30c30 Mon Sep 17 00:00:00 2001 From: zombiej Date: Fri, 15 May 2020 14:59:38 +0800 Subject: [PATCH 2/3] test case --- tests/picker.spec.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index 1d97c30d2..9b5a481c7 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -467,6 +467,19 @@ describe('Picker.Basic', () => { expect(isSame(onSelect.mock.calls[0][0], '1990-09-03')).toBeTruthy(); }); + it('disabled when in disabledDate', () => { + const onSelect = jest.fn(); + const wrapper = mount( + true} showToday />, + ); + wrapper.openPicker(); + expect( + wrapper.find('.rc-picker-today-btn').hasClass('rc-picker-today-btn-disabled'), + ).toBeTruthy(); + wrapper.find('.rc-picker-today-btn').simulate('click'); + expect(onSelect).not.toHaveBeenCalled(); + }); + ['decade', 'year', 'quarter', 'month', 'week'].forEach(name => { it(`not works on ${name}`, () => { const wrapper = mount(); From bf677c765f0c2d1c1a5ade7cf96bf541a775f23a Mon Sep 17 00:00:00 2001 From: zombiej Date: Fri, 15 May 2020 15:00:19 +0800 Subject: [PATCH 3/3] add aria mark --- src/PickerPanel.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PickerPanel.tsx b/src/PickerPanel.tsx index 99f378fdb..27e17feaf 100644 --- a/src/PickerPanel.tsx +++ b/src/PickerPanel.tsx @@ -465,6 +465,7 @@ function PickerPanel(props: PickerPanelProps) { todayNode = ( { if (!disabled) { triggerSelect(now, 'mouse', true);