Skip to content

Commit 418c87b

Browse files
committed
fix(InputMenu): prevent change event when selecting create item
Resolves #4664
1 parent 3331533 commit 418c87b

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

src/runtime/components/InputMenu.vue

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,13 @@ function onRemoveTag(event: any, modelValue: GetModelValue<T, VK, true>) {
415415
}
416416
}
417417
418+
function onCreate(e: Event) {
419+
e.preventDefault()
420+
e.stopPropagation()
421+
422+
emits('create', searchTerm.value)
423+
}
424+
418425
function onSelect(e: Event, item: InputMenuItem) {
419426
if (!isInputItem(item)) {
420427
return
@@ -444,7 +451,7 @@ defineExpose({
444451
data-slot="item"
445452
:class="ui.item({ class: props.ui?.item })"
446453
:value="searchTerm"
447-
@select.prevent="emits('create', searchTerm)"
454+
@select="onCreate"
448455
>
449456
<span data-slot="itemLabel" :class="ui.itemLabel({ class: props.ui?.itemLabel })">
450457
<slot name="create-item-label" :item="searchTerm">
@@ -520,7 +527,6 @@ defineExpose({
520527
ignore-filter
521528
@update:model-value="onUpdate"
522529
@update:open="onUpdateOpen"
523-
@keydown.enter="$event.preventDefault()"
524530
>
525531
<ComboboxAnchor :as-child="!multiple" data-slot="base" :class="ui.base({ class: props.ui?.base })">
526532
<TagsInputRoot
@@ -557,7 +563,7 @@ defineExpose({
557563
:placeholder="placeholder"
558564
data-slot="tagsInput"
559565
:class="ui.tagsInput({ class: props.ui?.tagsInput })"
560-
@keydown.enter.prevent
566+
@change.stop
561567
/>
562568
</ComboboxInput>
563569
</TagsInputRoot>
@@ -573,6 +579,7 @@ defineExpose({
573579
:required="required"
574580
@blur="onBlur"
575581
@focus="onFocus"
582+
@change.stop
576583
@update:model-value="searchTerm = $event"
577584
/>
578585

src/runtime/components/SelectMenu.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,13 @@ function onUpdateOpen(value: boolean) {
397397
}
398398
}
399399
400+
function onCreate(e: Event) {
401+
e.preventDefault()
402+
e.stopPropagation()
403+
404+
emits('create', searchTerm.value)
405+
}
406+
400407
function onSelect(e: Event, item: SelectMenuItem) {
401408
if (!isSelectItem(item)) {
402409
return
@@ -426,7 +433,7 @@ defineExpose({
426433
data-slot="item"
427434
:class="ui.item({ class: props.ui?.item })"
428435
:value="searchTerm"
429-
@select.prevent="emits('create', searchTerm)"
436+
@select="onCreate"
430437
>
431438
<span data-slot="itemLabel" :class="ui.itemLabel({ class: props.ui?.itemLabel })">
432439
<slot name="create-item-label" :item="searchTerm">
@@ -543,6 +550,7 @@ defineExpose({
543550
v-bind="searchInputProps"
544551
data-slot="input"
545552
:class="ui.input({ class: props.ui?.input })"
553+
@change.stop
546554
/>
547555
</ComboboxInput>
548556

0 commit comments

Comments
 (0)