Skip to content

Commit bae518b

Browse files
authored
fix: RangePicker switch field should keep the time sync with date (#769)
* fix: range time selection * test: add test case * docs: demo back
1 parent 4f9a6a5 commit bae518b

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

src/PickerPanel/TimePanel/TimePanelBody/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ export default function TimePanelBody<DateType extends object = any>(
145145
// ========================= Column =========================
146146
// Create a template date for the trigger change event
147147
const triggerDateTmpl = React.useMemo(() => {
148-
let tmpl = pickerValue || generateConfig.getNow();
148+
let tmpl = value || pickerValue || generateConfig.getNow();
149149

150150
const isNotNull = (num: number) => num !== null && num !== undefined;
151151

@@ -168,6 +168,7 @@ export default function TimePanelBody<DateType extends object = any>(
168168

169169
return tmpl;
170170
}, [
171+
value,
171172
pickerValue,
172173
hour,
173174
minute,

tests/new-range.spec.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,4 +1240,28 @@ describe('NewPicker.Range', () => {
12401240
render(<DayRangePicker picker="week" value={[dayjs(), dayjs().add(21, 'days')]} open />);
12411241
expect(document.querySelector('.rc-picker-cell-range-start')).toBeFalsy();
12421242
});
1243+
1244+
it('click time should not modify date', async () => {
1245+
const onChange = jest.fn();
1246+
const { container } = render(
1247+
<DayRangePicker showTime value={[dayjs(), dayjs().add(21, 'days')]} onChange={onChange} />,
1248+
);
1249+
1250+
openPicker(container);
1251+
1252+
// Start
1253+
fireEvent.click(document.querySelectorAll('li.rc-picker-time-panel-cell')[2]);
1254+
fireEvent.click(document.querySelector('.rc-picker-ok button'));
1255+
await waitFakeTimer();
1256+
1257+
// End
1258+
fireEvent.click(document.querySelectorAll('li.rc-picker-time-panel-cell')[2]);
1259+
fireEvent.click(document.querySelector('.rc-picker-ok button'));
1260+
await waitFakeTimer();
1261+
1262+
expect(onChange).toHaveBeenCalledWith(expect.anything(), [
1263+
'1990-09-03 02:00:00',
1264+
'1990-09-24 02:00:00',
1265+
]);
1266+
});
12431267
});

tsconfig.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,12 @@
1313
"rc-picker": ["src/index.tsx"]
1414
}
1515
},
16-
"include": [".dumirc.ts", "src/**/*.ts", "src/**/*.tsx", "docs/examples/focus.tsx"]
16+
"include": [
17+
".dumirc.ts",
18+
"src/**/*.ts",
19+
"src/**/*.tsx",
20+
"docs/examples/focus.tsx",
21+
"tests/**/*.ts",
22+
"tests/**/*.tsx"
23+
]
1724
}

0 commit comments

Comments
 (0)