Files
budgeteer/web/src/components/Input.vue
2022-08-21 21:32:49 +02:00

27 lines
595 B
Vue

<script lang="ts" setup>
const props = defineProps<{
modelValue?: number | string,
type: string,
}>();
const emits = defineEmits<{
(e: "update:modelValue", value: number | string): void
}>();
function valueChanged(e: Event) {
const target = <HTMLInputElement>e.target;
switch (props.type) {
case "number":
emits('update:modelValue', target.valueAsNumber);
break;
default:
emits('update:modelValue', target.value)
break;
}
}
</script>
<template>
<input :value="modelValue" :type="type" class="dark:bg-slate-900" @input="valueChanged">
</template>