fix(slider): dispatch on:input event (#1906)

Fixes #1643

The dispatched `on:change` event in `Slider` only fires when the slider thumb is released. `on:input` fires when actively dragging the thumb, and should fire on every increment (e.g., 1, 2, 3).
This commit is contained in:
mmamedel 2024-02-10 23:44:39 -05:00 committed by GitHub
commit 90dbd1562b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 8 additions and 0 deletions

View file

@ -3533,6 +3533,7 @@ None.
| Event name | Type | Detail |
| :--------- | :--------- | :------------------ |
| change | dispatched | <code>number</code> |
| input | dispatched | <code>number</code> |
| click | forwarded | -- |
| mouseover | forwarded | -- |
| mouseenter | forwarded | -- |

View file

@ -11361,6 +11361,7 @@
],
"events": [
{ "type": "dispatched", "name": "change", "detail": "number" },
{ "type": "dispatched", "name": "input", "detail": "number" },
{ "type": "forwarded", "name": "click", "element": "div" },
{ "type": "forwarded", "name": "mouseover", "element": "div" },
{ "type": "forwarded", "name": "mouseenter", "element": "div" },

View file

@ -1,6 +1,7 @@
<script>
/**
* @event {number} change
* @event {number} input
*/
/** Specify the value of the slider */
@ -109,6 +110,7 @@
}
value = nextValue;
dispatch("input", value);
}
$: labelId = `label-${id}`;

View file

@ -14,6 +14,9 @@
on:change="{(e) => {
console.log(e.detail); // number
}}"
on:input="{(e) => {
console.log(e.detail); // number
}}"
/>
<Slider

View file

@ -127,6 +127,7 @@ export default class Slider extends SvelteComponentTyped<
SliderProps,
{
change: CustomEvent<number>;
input: CustomEvent<number>;
click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"];