Skip to content

Commit b8f4e21

Browse files
committed
fix: datetime blur logic
1 parent c765d4f commit b8f4e21

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/hooks/usePickerInput.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,11 @@ export default function usePickerInput({
9696
}
9797

9898
if (blurToCancel) {
99-
onCancel();
99+
setTimeout(() => {
100+
if (isClickOutside(document.activeElement)) {
101+
onCancel();
102+
}
103+
}, 0);
100104
} else {
101105
triggerOpen(false);
102106
}

tests/range.spec.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -830,10 +830,16 @@ describe('Picker.Range', () => {
830830
});
831831

832832
it('datetime will reset by blur', () => {
833+
jest.useFakeTimers();
834+
833835
const wrapper = mount(<MomentRangePicker showTime />);
834836
wrapper.openPicker();
835837
wrapper.selectCell(11);
836838
wrapper.closePicker();
839+
act(() => {
840+
jest.runAllTimers();
841+
});
842+
wrapper.update();
837843

838844
expect(wrapper.isOpen()).toBeFalsy();
839845
expect(
@@ -842,5 +848,7 @@ describe('Picker.Range', () => {
842848
.first()
843849
.props().value,
844850
).toEqual('');
851+
852+
jest.useRealTimers();
845853
});
846854
});

0 commit comments

Comments
 (0)