File size: 569 Bytes
89ce340
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<template>
  <Button 
    :checked="!disabled && _value === value"
    :disabled="disabled"
    type="radio"
    @click="!disabled && updateValue(value)"
  >
    <slot></slot>
  </Button>
</template>

<script lang="ts" setup>
import { inject } from 'vue'
import { injectKeyRadioGroupValue, type RadioGroupValue } from '@/types/injectKey'

import Button from './Button.vue'

const { value: _value, updateValue } = inject(injectKeyRadioGroupValue) as RadioGroupValue

withDefaults(defineProps<{
  value: string
  disabled?: boolean
}>(), {
  disabled: false,
})
</script>