feat: add min/max enforcement to device settings

resolves #6
This commit is contained in:
2023-12-21 18:31:50 +01:00
parent 6bb42429e5
commit 81af9f2e82

View File

@@ -7,6 +7,8 @@ export const setting: Action<HTMLInputElement, {id: number; inverse?: number; sc
) {
node.setAttribute("disabled", "")
const type = node.getAttribute("type") as "number" | "checkbox"
const min = Number(node.getAttribute("min"))
const max = Number(node.getAttribute("max"))
const unsubscribe = settings.subscribe(async settings => {
if (id in settings) {
@@ -37,6 +39,8 @@ export const setting: Action<HTMLInputElement, {id: number; inverse?: number; sc
value = Math.floor(
inverse !== undefined ? inverse / value : scale !== undefined ? value / scale : value,
)
if (!Number.isNaN(min)) value = Math.max(min, value)
if (!Number.isNaN(max)) value = Math.min(max, value)
} else {
value = node.checked ? 1 : 0
}