diff --git a/app/src/components/v-input/v-input.vue b/app/src/components/v-input/v-input.vue index f8d6aa5bef..1059465b3e 100644 --- a/app/src/components/v-input/v-input.vue +++ b/app/src/components/v-input/v-input.vue @@ -29,18 +29,18 @@ {{ suffix }}
@@ -140,7 +140,15 @@ export default defineComponent({ return listeners.click !== undefined; }); - return { _listeners, hasClick, stepUp, stepDown, input }; + const isStepUpAllowed = computed(() => { + return props.disabled === false && (props.max === null || parseInt(props.value, 10) < props.max); + }); + + const isStepDownAllowed = computed(() => { + return props.disabled === false && (props.min === null || parseInt(props.value, 10) > props.min); + }); + + return { _listeners, hasClick, stepUp, stepDown, isStepUpAllowed, isStepDownAllowed, input }; function processValue(event: KeyboardEvent) { if (!event.key) return; @@ -211,8 +219,7 @@ export default defineComponent({ function stepUp() { if (!input.value) return; - if (props.disabled === true) return; - if (props.max !== null && props.value >= props.max) return; + if (isStepUpAllowed.value === false) return; input.value.stepUp(); @@ -223,8 +230,7 @@ export default defineComponent({ function stepDown() { if (!input.value) return; - if (props.disabled === true) return; - if (props.min !== null && props.value <= props.min) return; + if (isStepDownAllowed.value === false) return; input.value.stepDown();