diff --git a/src/lib/components/common/Slider.svelte b/src/lib/components/common/Slider.svelte
index 8100b9a..2bbd19b 100644
--- a/src/lib/components/common/Slider.svelte
+++ b/src/lib/components/common/Slider.svelte
@@ -37,16 +37,27 @@
return `background: linear-gradient(to right, var(--brand-primary) 0%, var(--brand-primary) ${percentage}%, var(--stroke) ${percentage}%, var(--stroke) 100%)`
})
- function handleInput(e: Event) {
+ function applySnap(e: Event): void {
if (snapToCenter !== undefined) {
+ const target = e.target as HTMLInputElement
+ const raw = parseFloat(target.value)
const mid = (min + max) / 2
- if (Math.abs(value - mid) <= snapToCenter) {
+ if (Math.abs(raw - mid) <= snapToCenter) {
value = mid
- ;(e.target as HTMLInputElement).value = String(mid)
+ target.value = String(mid)
}
}
+ }
+
+ function handleInput(e: Event) {
+ applySnap(e)
oninput?.(e)
}
+
+ function handleChange(e: Event) {
+ applySnap(e)
+ onchange?.(e)
+ }