mirror of
https://github.com/zoriya/v10.git
synced 2026-08-15 10:23:32 +00:00
fix(core): remove 1-9 digit key seek from slider keyboard handler (#1690)
This commit is contained in:
@@ -291,12 +291,6 @@ export function createSlider(options: SliderOptions): SliderApi {
|
||||
case 'End':
|
||||
newPercent = 100;
|
||||
break;
|
||||
default:
|
||||
// Suppress when any modifier is held to avoid hijacking browser/OS shortcuts.
|
||||
if (!event.metaKey && !event.ctrlKey && !event.altKey && event.key >= '0' && event.key <= '9') {
|
||||
newPercent = Number(event.key) * 10;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (newPercent !== null) {
|
||||
|
||||
@@ -562,57 +562,6 @@ describe('createSlider', () => {
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('numeric keys jump to N * 10%', () => {
|
||||
const onValueChange = vi.fn();
|
||||
const slider = createSlider(createOptions({ onValueChange }));
|
||||
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('5'));
|
||||
expect(onValueChange).toHaveBeenCalledWith(50);
|
||||
|
||||
onValueChange.mockClear();
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('0'));
|
||||
expect(onValueChange).toHaveBeenCalledWith(0);
|
||||
|
||||
onValueChange.mockClear();
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('9'));
|
||||
expect(onValueChange).toHaveBeenCalledWith(90);
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('numeric keys do not fire when metaKey is held', () => {
|
||||
const onValueChange = vi.fn();
|
||||
const slider = createSlider(createOptions({ onValueChange }));
|
||||
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('5', { metaKey: true }));
|
||||
|
||||
expect(onValueChange).not.toHaveBeenCalled();
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('numeric keys do not fire when ctrlKey is held', () => {
|
||||
const onValueChange = vi.fn();
|
||||
const slider = createSlider(createOptions({ onValueChange }));
|
||||
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('5', { ctrlKey: true }));
|
||||
|
||||
expect(onValueChange).not.toHaveBeenCalled();
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('numeric keys do not fire when altKey is held', () => {
|
||||
const onValueChange = vi.fn();
|
||||
const slider = createSlider(createOptions({ onValueChange }));
|
||||
|
||||
slider.thumbProps.onKeyDown(keyboardEvent('5', { altKey: true }));
|
||||
|
||||
expect(onValueChange).not.toHaveBeenCalled();
|
||||
|
||||
slider.destroy();
|
||||
});
|
||||
|
||||
it('clamps to 0-100 range', () => {
|
||||
const onValueChange = vi.fn();
|
||||
const slider = createSlider(createOptions({ getPercent: () => 99, getStepPercent: () => 5, onValueChange }));
|
||||
|
||||
Reference in New Issue
Block a user