| 1234567891011121314151617181920212223242526272829303132333435 |
- <template>
- <ButtonGroup class="radio-group">
- <slot></slot>
- </ButtonGroup>
- </template>
- <script lang="ts" setup>
- import { computed, provide } from 'vue'
- import { injectKeyRadioGroupValue } from '@/types/injectKey'
- import ButtonGroup from './ButtonGroup.vue'
- const props = withDefaults(defineProps<{
- value: string
- disabled?: boolean
- }>(), {
- disabled: false,
- })
- const emit = defineEmits<{
- (event: 'update:value', payload: string): void
- }>()
- const updateValue = (value: string) => {
- if (props.disabled) return
- emit('update:value', value)
- }
- const value = computed(() => props.value)
- provide(injectKeyRadioGroupValue, {
- value,
- updateValue,
- })
- </script>
|