Skip to content

Commit

Permalink
fix: hide bottom button when switch date interval in the head (#652)
Browse files Browse the repository at this point in the history
* fix: hide bottom button when switch date interval in the head

* chore: add test case

---------

Co-authored-by: dujiaqi <[email protected]>
  • Loading branch information
Yuiai01 and dujiaqi authored Jul 5, 2023
1 parent 400ce85 commit 240e843
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 20 deletions.
41 changes: 23 additions & 18 deletions src/PickerPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import KeyCode from 'rc-util/lib/KeyCode';
import warning from 'rc-util/lib/warning';
import * as React from 'react';
import type { GenerateConfig } from './generate';
import { useCellRender } from './hooks/useCellRender';
import type {
CellRender,
Components,
Expand Down Expand Up @@ -39,7 +40,6 @@ import getExtraFooter from './utils/getExtraFooter';
import getRanges from './utils/getRanges';
import { getLowerBoundTime, setDateTime, setTime } from './utils/timeUtil';
import { PickerModeMap } from './utils/uiUtil';
import { useCellRender } from './hooks/useCellRender';

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

if (!hideRanges) {
extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);
rangesNode = getRanges({
prefixCls,
components,
needConfirmButton,
okDisabled: !mergedValue || (disabledDate && disabledDate(mergedValue)),
locale,
showNow,
onNow: needConfirmButton && onNow,
onOk: () => {
if (mergedValue) {
triggerSelect(mergedValue, 'submit', true);
if (onOk) {
onOk(mergedValue);

// This content is not displayed when the header switches year and month
if (showTime && mergedMode !== 'date') {
rangesNode = null;
} else {
rangesNode = getRanges({
prefixCls,
components,
needConfirmButton,
okDisabled: !mergedValue || (disabledDate && disabledDate(mergedValue)),
locale,
showNow,
onNow: needConfirmButton && onNow,
onOk: () => {
if (mergedValue) {
triggerSelect(mergedValue, 'submit', true);
if (onOk) {
onOk(mergedValue);
}
}
}
},
});
},
});
}
}

let todayNode: React.ReactNode;

if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {
const now = generateConfig.getNow();
const todayCls = `${prefixCls}-today-btn`;
Expand Down
14 changes: 12 additions & 2 deletions tests/panel.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,12 @@ describe('Picker.Panel', () => {
expect(isSame(onSelect.mock.calls[2][0], '1990-09-20 10:03:07')).toBeTruthy();
});

it('should hide bottom button when switch date interval in the head', () => {
render(<MomentPickerPanel showTime />);
fireEvent.click(document.querySelector('.rc-picker-year-btn'));
expect(document.querySelector('.rc-picker-ranges')).toBeFalsy();
});

it('DatePicker has defaultValue and showTime.defaultValue ', () => {
const onSelect = jest.fn();
render(
Expand Down Expand Up @@ -641,8 +647,12 @@ describe('Picker.Panel', () => {
)}
/>,
);
expect(errSpy).toHaveBeenCalledWith("Warning: 'dateRender' is deprecated. Please use 'cellRender' instead.");
expect(errSpy).toHaveBeenCalledWith("Warning: 'monthCellRender' is deprecated. Please use 'cellRender' instead.");
expect(errSpy).toHaveBeenCalledWith(
"Warning: 'dateRender' is deprecated. Please use 'cellRender' instead.",
);
expect(errSpy).toHaveBeenCalledWith(
"Warning: 'monthCellRender' is deprecated. Please use 'cellRender' instead.",
);

errSpy.mockRestore();
});
Expand Down

1 comment on commit 240e843

@vercel
Copy link

@vercel vercel bot commented on 240e843 Jul 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.