mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-20 06:51:46 +01:00
fix(InputMenu/SelectMenu): prevent disabled items to be selected
Resolves #3474
This commit is contained in:
@@ -364,10 +364,22 @@ function onRemoveTag(event: any) {
|
||||
}
|
||||
}
|
||||
|
||||
function onSelect(e: Event, item: InputMenuItem) {
|
||||
if (!isInputItem(item)) {
|
||||
return
|
||||
}
|
||||
|
||||
if (item.disabled) {
|
||||
e.preventDefault()
|
||||
return
|
||||
}
|
||||
|
||||
item.onSelect?.(e)
|
||||
}
|
||||
|
||||
function isInputItem(item: InputMenuItem): item is _InputMenuItem {
|
||||
return typeof item === 'object' && item !== null
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
inputRef
|
||||
})
|
||||
@@ -493,7 +505,7 @@ defineExpose({
|
||||
:class="ui.item({ class: props.ui?.item })"
|
||||
:disabled="isInputItem(item) && item.disabled"
|
||||
:value="props.valueKey && isInputItem(item) ? get(item, String(props.valueKey)) : item"
|
||||
@select="isInputItem(item) && item.onSelect?.($event)"
|
||||
@select="onSelect($event, item)"
|
||||
>
|
||||
<slot name="item" :item="(item as NestedItem<T>)" :index="index">
|
||||
<slot name="item-leading" :item="(item as NestedItem<T>)" :index="index">
|
||||
|
||||
Reference in New Issue
Block a user