fix: weird input behaviour on setting changes

This commit is contained in:
2023-12-07 19:27:29 +01:00
parent d552fb9220
commit b0f653e73b

View File

@@ -34,7 +34,9 @@ export const setting: Action<HTMLInputElement, {id: number; inverse?: number; sc
if (type === "number") { if (type === "number") {
value = Number.parseInt(node.value) value = Number.parseInt(node.value)
if (Number.isNaN(value)) return if (Number.isNaN(value)) return
value = inverse !== undefined ? inverse / value : scale !== undefined ? value / scale : value value = Math.floor(
inverse !== undefined ? inverse / value : scale !== undefined ? value / scale : value,
)
} else { } else {
value = node.checked ? 1 : 0 value = node.checked ? 1 : 0
} }
@@ -48,11 +50,12 @@ export const setting: Action<HTMLInputElement, {id: number; inverse?: number; sc
return changes return changes
}) })
} }
node.addEventListener("input", listener)
node.addEventListener("change", listener)
return { return {
destroy() { destroy() {
node.removeEventListener("input", listener) node.removeEventListener("change", listener)
unsubscribe() unsubscribe()
}, },
} }