Skip to content

Commit 88b4752

Browse files
committed
fix: preserve mouseup default behavior
1 parent ba0d927 commit 88b4752

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

src/hooks/useDrag.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ function useDrag(
211211

212212
// End
213213
const onMouseUp: EventListener = (event) => {
214-
event.preventDefault();
214+
if (event.type === 'touchend') {
215+
event.preventDefault();
216+
}
215217

216218
document.removeEventListener('mouseup', onMouseUp, true);
217219
document.removeEventListener('mousemove', onMouseMove);

tests/Slider.test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,9 @@ describe('Slider', () => {
662662
it('should finish dragging when a parent stops mouseup propagation', () => {
663663
const onChange = jest.fn();
664664
const onChangeComplete = jest.fn();
665+
const onParentMouseUp = jest.fn((event) => event.stopPropagation());
665666
const { container, getByTestId } = render(
666-
<div data-testid="parent" onMouseUp={(event) => event.stopPropagation()}>
667+
<div data-testid="parent" onMouseUp={onParentMouseUp}>
667668
<Slider defaultValue={50} onChange={onChange} onChangeComplete={onChangeComplete} />
668669
</div>,
669670
);
@@ -678,6 +679,7 @@ describe('Slider', () => {
678679

679680
onChange.mockClear();
680681
fireEvent.mouseUp(getByTestId('parent'));
682+
expect(onParentMouseUp.mock.calls[0][0].defaultPrevented).toBe(false);
681683
expect(onChangeComplete).toHaveBeenCalledWith(lastDraggedValue);
682684

683685
const moveAfterRelease = createEvent.mouseMove(document);

0 commit comments

Comments
 (0)