mirror of
https://github.com/zoriya/v10.git
synced 2026-08-05 13:48:14 +00:00
fix(slider): keep pointer position after pointerleave (#807)
This commit is contained in:
@@ -112,10 +112,10 @@ export function createSlider(options: SliderOptions): SliderApi {
|
||||
|
||||
function endDrag(): void {
|
||||
if (!isDragging) {
|
||||
input.patch({ pointing: false, pointerPercent: 0 });
|
||||
input.patch({ pointing: false });
|
||||
} else {
|
||||
isDragging = false;
|
||||
input.patch({ dragging: false, pointing: false, pointerPercent: 0 });
|
||||
input.patch({ dragging: false, pointing: false });
|
||||
options.onDragEnd?.();
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ export function createSlider(options: SliderOptions): SliderApi {
|
||||
|
||||
onPointerLeave() {
|
||||
if (!isNull(capturedPointerId)) return;
|
||||
input.patch({ pointing: false, pointerPercent: 0 });
|
||||
input.patch({ pointing: false });
|
||||
},
|
||||
|
||||
onLostPointerCapture() {
|
||||
|
||||
@@ -348,7 +348,7 @@ describe('createSlider', () => {
|
||||
flush();
|
||||
|
||||
expect(slider.input.current.pointing).toBe(false);
|
||||
expect(slider.input.current.pointerPercent).toBe(0);
|
||||
expect(slider.input.current.pointerPercent).toBe(25);
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
@@ -413,7 +413,7 @@ describe('createSlider', () => {
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('resets on pointerleave', () => {
|
||||
it('clears pointing on pointerleave and keeps last pointerPercent', () => {
|
||||
const el = createMockElement({ left: 0, width: 200 });
|
||||
const slider = createSlider(createOptions({ getElement: () => el }));
|
||||
|
||||
@@ -422,7 +422,7 @@ describe('createSlider', () => {
|
||||
flush();
|
||||
|
||||
expect(slider.input.current.pointing).toBe(false);
|
||||
expect(slider.input.current.pointerPercent).toBe(0);
|
||||
expect(slider.input.current.pointerPercent).toBe(30);
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user