From 38302fe6a5a081fbc03ce6d24a78fb1c8aad735d Mon Sep 17 00:00:00 2001 From: John Leider Date: Mon, 8 Aug 2022 11:28:07 -0500 Subject: [PATCH] fix(VRadioGroup): allow use without defined model --- .../vuetify/src/components/VRadioGroup/VRadioGroup.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx b/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx index 757da50501ee..9cae11254b28 100644 --- a/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx +++ b/packages/vuetify/src/components/VRadioGroup/VRadioGroup.tsx @@ -9,9 +9,10 @@ import { VSelectionControlGroup } from '@/components/VSelectionControlGroup' // Composables import { IconValue } from '@/composables/icons' +import { useProxiedModel } from '@/composables/proxiedModel' // Utilities -import { computed } from 'vue' +import { computed, toRef } from 'vue' import { defineComponent, filterInputAttrs, getUid, useRender } from '@/util' export const VRadioGroup = defineComponent({ @@ -42,9 +43,14 @@ export const VRadioGroup = defineComponent({ }, }, + emits: { + 'update:modelValue': (val: any) => true, + }, + setup (props, { attrs, slots }) { const uid = getUid() const id = computed(() => props.id || `radio-group-${uid}`) + const model = useProxiedModel(props, 'modelValue') useRender(() => { const [inputAttrs, controlAttrs] = filterInputAttrs(attrs) @@ -62,6 +68,7 @@ export const VRadioGroup = defineComponent({ class="v-radio-group" { ...inputAttrs } { ...inputProps } + v-model={ model.value } id={ id.value } > {{ @@ -87,6 +94,7 @@ export const VRadioGroup = defineComponent({ disabled={ isDisabled.value } readonly={ isReadonly.value } { ...controlAttrs } + v-model={ model.value } v-slots={ slots } />