Skip to content

Commit 240e843

Browse files
Yuiai01dujiaqi
andauthored
fix: hide bottom button when switch date interval in the head (#652)
* fix: hide bottom button when switch date interval in the head * chore: add test case --------- Co-authored-by: dujiaqi <[email protected]>
1 parent 400ce85 commit 240e843

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed

src/PickerPanel.tsx

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import KeyCode from 'rc-util/lib/KeyCode';
1111
import warning from 'rc-util/lib/warning';
1212
import * as React from 'react';
1313
import type { GenerateConfig } from './generate';
14+
import { useCellRender } from './hooks/useCellRender';
1415
import type {
1516
CellRender,
1617
Components,
@@ -39,7 +40,6 @@ import getExtraFooter from './utils/getExtraFooter';
3940
import getRanges from './utils/getRanges';
4041
import { getLowerBoundTime, setDateTime, setTime } from './utils/timeUtil';
4142
import { PickerModeMap } from './utils/uiUtil';
42-
import { useCellRender } from './hooks/useCellRender';
4343

4444
export type PickerPanelSharedProps<DateType> = {
4545
prefixCls?: string;
@@ -554,27 +554,32 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
554554

555555
if (!hideRanges) {
556556
extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);
557-
rangesNode = getRanges({
558-
prefixCls,
559-
components,
560-
needConfirmButton,
561-
okDisabled: !mergedValue || (disabledDate && disabledDate(mergedValue)),
562-
locale,
563-
showNow,
564-
onNow: needConfirmButton && onNow,
565-
onOk: () => {
566-
if (mergedValue) {
567-
triggerSelect(mergedValue, 'submit', true);
568-
if (onOk) {
569-
onOk(mergedValue);
557+
558+
// This content is not displayed when the header switches year and month
559+
if (showTime && mergedMode !== 'date') {
560+
rangesNode = null;
561+
} else {
562+
rangesNode = getRanges({
563+
prefixCls,
564+
components,
565+
needConfirmButton,
566+
okDisabled: !mergedValue || (disabledDate && disabledDate(mergedValue)),
567+
locale,
568+
showNow,
569+
onNow: needConfirmButton && onNow,
570+
onOk: () => {
571+
if (mergedValue) {
572+
triggerSelect(mergedValue, 'submit', true);
573+
if (onOk) {
574+
onOk(mergedValue);
575+
}
570576
}
571-
}
572-
},
573-
});
577+
},
578+
});
579+
}
574580
}
575581

576582
let todayNode: React.ReactNode;
577-
578583
if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {
579584
const now = generateConfig.getNow();
580585
const todayCls = `${prefixCls}-today-btn`;

tests/panel.spec.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,12 @@ describe('Picker.Panel', () => {
252252
expect(isSame(onSelect.mock.calls[2][0], '1990-09-20 10:03:07')).toBeTruthy();
253253
});
254254

255+
it('should hide bottom button when switch date interval in the head', () => {
256+
render(<MomentPickerPanel showTime />);
257+
fireEvent.click(document.querySelector('.rc-picker-year-btn'));
258+
expect(document.querySelector('.rc-picker-ranges')).toBeFalsy();
259+
});
260+
255261
it('DatePicker has defaultValue and showTime.defaultValue ', () => {
256262
const onSelect = jest.fn();
257263
render(
@@ -641,8 +647,12 @@ describe('Picker.Panel', () => {
641647
)}
642648
/>,
643649
);
644-
expect(errSpy).toHaveBeenCalledWith("Warning: 'dateRender' is deprecated. Please use 'cellRender' instead.");
645-
expect(errSpy).toHaveBeenCalledWith("Warning: 'monthCellRender' is deprecated. Please use 'cellRender' instead.");
650+
expect(errSpy).toHaveBeenCalledWith(
651+
"Warning: 'dateRender' is deprecated. Please use 'cellRender' instead.",
652+
);
653+
expect(errSpy).toHaveBeenCalledWith(
654+
"Warning: 'monthCellRender' is deprecated. Please use 'cellRender' instead.",
655+
);
646656

647657
errSpy.mockRestore();
648658
});

0 commit comments

Comments
 (0)