<script setup lang="ts"> const model = defineModel<number>() const isValid = defineModel<boolean>('isValid') const days = ref<number | ''>(0) const hours = ref<number | ''>(1) const minutes = ref<number | ''>(0) watchEffect(() => { if (days.value === '' || hours.value === '' || minutes.value === '') { isValid.value = false return } const duration = days.value * 24 * 60 * 60 + hours.value * 60 * 60 + minutes.value * 60 if (duration <= 0) { isValid.value = false return } isValid.value = true model.value = duration }) </script> <template> <div flex flex-grow-0 gap-2> <label flex items-center gap-2> <input v-model="days" type="number" min="0" max="1999" input-base :class="!isValid ? 'input-error' : null"> {{ $t('confirm.mute_account.days', days === '' ? 0 : days) }} </label> <label flex items-center gap-2> <input v-model="hours" type="number" min="0" max="24" input-base :class="!isValid ? 'input-error' : null"> {{ $t('confirm.mute_account.hours', hours === '' ? 0 : hours) }} </label> <label flex items-center gap-2> <input v-model="minutes" type="number" min="0" max="59" step="5" input-base :class="!isValid ? 'input-error' : null"> {{ $t('confirm.mute_account.minute', minutes === '' ? 0 : minutes) }} </label> </div> </template>