feat(Input/Textarea): nullify model modifier (#2309)

This commit is contained in:
Gerben Mulder
2024-10-14 12:45:15 +02:00
committed by GitHub
parent 33b9a445c4
commit 9dd7e615e9
2 changed files with 12 additions and 4 deletions

View File

@@ -158,7 +158,7 @@ export default defineComponent({
default: () => ({})
},
modelModifiers: {
type: Object as PropType<{ trim?: boolean, lazy?: boolean, number?: boolean }>,
type: Object as PropType<{ trim?: boolean, lazy?: boolean, number?: boolean, nullify?: boolean }>,
default: () => ({})
}
},
@@ -172,7 +172,7 @@ export default defineComponent({
const size = computed(() => sizeButtonGroup.value ?? sizeFormGroup.value)
const modelModifiers = ref(defu({}, props.modelModifiers, { trim: false, lazy: false, number: false }))
const modelModifiers = ref(defu({}, props.modelModifiers, { trim: false, lazy: false, number: false, nullify: false }))
const input = ref<HTMLInputElement | null>(null)
@@ -193,6 +193,10 @@ export default defineComponent({
value = looseToNumber(value)
}
if (modelModifiers.value.nullify) {
value ||= null
}
emit('update:modelValue', value)
emitFormInput()
}

View File

@@ -127,7 +127,7 @@ export default defineComponent({
default: () => ({})
},
modelModifiers: {
type: Object as PropType<{ trim?: boolean, lazy?: boolean, number?: boolean }>,
type: Object as PropType<{ trim?: boolean, lazy?: boolean, number?: boolean, nullify?: boolean }>,
default: () => ({})
}
},
@@ -137,7 +137,7 @@ export default defineComponent({
const { emitFormBlur, emitFormInput, inputId, color, size, name } = useFormGroup(props, config)
const modelModifiers = ref(defu({}, props.modelModifiers, { trim: false, lazy: false, number: false }))
const modelModifiers = ref(defu({}, props.modelModifiers, { trim: false, lazy: false, number: false, nullify: false }))
const textarea = ref<HTMLTextAreaElement | null>(null)
@@ -183,6 +183,10 @@ export default defineComponent({
value = looseToNumber(value)
}
if (modelModifiers.value.nullify) {
value ||= null
}
emit('update:modelValue', value)
emitFormInput()
}