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();