Skip to content

Commit a4d073b

Browse files
authored
fix: improve number input UX in config renderer (#7153)
* fix: improve number input UX in config renderer * fix: address review comments on number input handling
1 parent f75c2d3 commit a4d073b

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

dashboard/src/components/shared/ConfigItemRenderer.vue

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,9 @@
146146
>
147147
<v-slider
148148
v-if="itemMeta?.slider"
149-
:model-value="toNumber(modelValue)"
150-
@update:model-value="val => emitUpdate(toNumber(val))"
149+
:model-value="toNumber(numericTemp ?? modelValue)"
150+
@update:model-value="val => { numericTemp = val; emitUpdate(toNumber(val)) }"
151+
@end="numericTemp = null"
151152
:min="itemMeta?.slider?.min ?? 0"
152153
:max="itemMeta?.slider?.max ?? 100"
153154
:step="itemMeta?.slider?.step ?? 1"
@@ -157,8 +158,9 @@
157158
style="flex: 1"
158159
></v-slider>
159160
<v-text-field
160-
:model-value="modelValue"
161-
@update:model-value="val => emitUpdate(toNumber(val))"
161+
:model-value="numericTemp ?? modelValue"
162+
@update:model-value="val => (numericTemp = val)"
163+
@blur="() => { emitUpdate(toNumber(numericTemp)); numericTemp = null }"
162164
density="compact"
163165
variant="outlined"
164166
class="config-field"
@@ -235,8 +237,11 @@ import PersonaSelector from './PersonaSelector.vue'
235237
import KnowledgeBaseSelector from './KnowledgeBaseSelector.vue'
236238
import PluginSetSelector from './PluginSetSelector.vue'
237239
import T2ITemplateEditor from './T2ITemplateEditor.vue'
240+
import { ref } from 'vue'
238241
import { useI18n, useModuleI18n } from '@/i18n/composables'
239242
243+
const numericTemp = ref(null)
244+
240245
const props = defineProps({
241246
modelValue: {
242247
type: [String, Number, Boolean, Array, Object],
@@ -358,4 +363,13 @@ function getSpecialSubtype(value) {
358363
:deep(.v-field__input) {
359364
font-size: 14px;
360365
}
366+
367+
:deep(.config-field input[type='number']::-webkit-inner-spin-button),
368+
:deep(.config-field input[type='number']::-webkit-outer-spin-button) {
369+
-webkit-appearance: none;
370+
}
371+
372+
:deep(.config-field input[type='number']) {
373+
-moz-appearance: textfield;
374+
}
361375
</style>

0 commit comments

Comments
 (0)