Skip to content

Commit

Permalink
fix(SelectMenu): handle Boolean type as model value (#1550)
Browse files Browse the repository at this point in the history
Co-authored-by: chenying <chenying@addcn.com>
Co-authored-by: Benjamin Canac <canacb1@gmail.com>
  • Loading branch information
3 people committed Mar 26, 2024
1 parent cc62e34 commit c49f899
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion docs/content/2.components/select-menu.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ componentProps:
---
::

If you only want to select a single object property rather than the whole object as value, you can set the `value-attribute` property. This prop defaults to `null`.
If you only want to select a single object property rather than the whole object as value, you can set the `value-attribute` property. This prop defaults to `null`.The value of the `value-attribute` field in options must be unique.

::component-example
---
Expand Down
6 changes: 3 additions & 3 deletions src/runtime/components/forms/SelectMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ export default defineComponent({
inheritAttrs: false,
props: {
modelValue: {
type: [String, Number, Object, Array],
type: [String, Number, Object, Array, Boolean],
default: ''
},
query: {
Expand Down Expand Up @@ -362,7 +362,7 @@ export default defineComponent({
} else {
return null
}
} else if (props.modelValue) {
} else if (props.modelValue !== undefined && props.modelValue !== null) {
if (props.valueAttribute) {
const option = props.options.find(option => option[props.valueAttribute] === props.modelValue)
return option ? option[props.optionAttribute] : null
Expand All @@ -387,7 +387,7 @@ export default defineComponent({
variant?.replaceAll('{color}', color.value),
(isLeading.value || slots.leading) && ui.value.leading.padding[size.value],
(isTrailing.value || slots.trailing) && ui.value.trailing.padding[size.value]
), props.placeholder && !props.modelValue && ui.value.placeholder, props.selectClass)
), props.placeholder && (props.modelValue === undefined && props.modelValue === null) && ui.value.placeholder, props.selectClass)
})
const isLeading = computed(() => {
Expand Down

0 comments on commit c49f899

Please sign in to comment.