Skip to content

Commit

Permalink
fix(radio): fix warning when value prop type is boolean, close tusen-…
Browse files Browse the repository at this point in the history
  • Loading branch information
jizai1125 committed Aug 19, 2022
1 parent bde60ff commit 52e09e4
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 14 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.en-US.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# CHANGELOG

## NEXT_VERSION

- Fix `n-radio` fix warning when value prop type is boolean, close (#3540)[https://github.com/tusen-ai/naive-ui/issues/3540].

## 2.32.2

### Fixes
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# CHANGELOG

## NEXT_VERSION

- 修复 `n-radio``value` 属性为布尔值时报警告, 关闭 [#3540](https://github.com/tusen-ai/naive-ui/issues/3540)

## 2.32.2

### Fixes
Expand Down
6 changes: 3 additions & 3 deletions src/radio/demos/enUS/index.demo-entry.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ size.vue
| label | `string` | `undefined` | Radio label. If not set, render default slot content, if both, use default slot content first. | 2.28.0 |
| name | `string` | `undefined` | The name attribute of the radio element. If not set, name of `radio-group` will be used. |
| size | `'small' \| 'medium' \| 'large'` | `'medium'` | Size. | |
| value | `string \| number` | `'on'` | Checked value. | |
| value | `string \| number \| boolean` | `'on'` | Checked value. | |
| on-update:checked | `(check: boolean) => void` | `undefined` | Callback method triggered when a selection change occurs. | |

### RadioGroup Props
Expand All @@ -35,6 +35,6 @@ size.vue
| disabled | `boolean` | `false` | Disabled state. |
| name | `string` | `undefined` | The name attribute of the radio elements inside the group. |
| size | `'small' \| 'medium' \| 'large'` | `'medium'` | Size. |
| value | `string \| number \| null` | `null` | Checked value. |
| default-value | `string \| number \| null` | `null` | Default checked value. |
| value | `string \| number \| boolean \| null` | `null` | Checked value. |
| default-value | `string \| number \| boolean \| null` | `null` | Default checked value. |
| on-update:value | `(value: string) => void` | `undefined` | Callback method triggered when a selection change occurs. |
6 changes: 3 additions & 3 deletions src/radio/demos/zhCN/index.demo-entry.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ rtl-debug.vue
| label | `string` | `undefined` | 标签 | 2.28.0 |
| name | `string` | `undefined` | 单选按钮 radio 元素的 name 属性。如果没有设定会使用 `n-radio-group``name` | |
| size | `'small' \| 'medium' \| 'large'` | `'medium'` | 大小 | |
| value | `string \| number` | `'on'` | 选中的值 | |
| value | `string \| number \| boolean` | `'on'` | 选中的值 | |
| on-update:checked | `(checked: boolean) => void` | `undefined` | 发生变化时触发的回调方法 | |

### RadioGroup Props
Expand All @@ -37,6 +37,6 @@ rtl-debug.vue
| disabled | `boolean` | `false` | 禁用状态 |
| name | `string` | `undefined` | 选项组内部 radio 元素的 name 属性 |
| size | `'small' \| 'medium' \| 'large'` | `'medium'` | 大小 |
| value | `string \| number \| null` | `null` | 选中的值 |
| default-value | `string \| number \| null` | `null` | 默认选中的值 |
| value | `string \| number \| boolean \| null` | `null` | 选中的值 |
| default-value | `string \| number \| boolean \| null` | `null` | 默认选中的值 |
| on-update:value | `(value: string) => void` | `undefined` | 发生变化时触发的回调方法 |
12 changes: 8 additions & 4 deletions src/radio/src/RadioGroup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import { useRtl } from '../../_mixins/use-rtl'

function mapSlot (
defaultSlot: VNode[],
value: string | number | null,
value: string | number | boolean | null,
clsPrefix: string
): {
children: VNodeChild[]
Expand Down Expand Up @@ -100,9 +100,13 @@ function mapSlot (
export const radioGroupProps = {
...(useTheme.props as ThemeProps<RadioTheme>),
name: String,
value: [String, Number] as PropType<string | number | null>,
value: [String, Number, Boolean] as PropType<
string | number | boolean | null
>,
defaultValue: {
type: [String, Number] as PropType<string | number | null>,
type: [String, Number, Boolean] as PropType<
string | number | boolean | null
>,
default: null
},
size: String as PropType<'small' | 'medium' | 'large'>,
Expand Down Expand Up @@ -145,7 +149,7 @@ export default defineComponent({
controlledValueRef,
uncontrolledValueRef
)
function doUpdateValue (value: string | number): void {
function doUpdateValue (value: string | number | boolean): void {
const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props
if (onUpdateValue) {
call(onUpdateValue as OnUpdateValueImpl, value)
Expand Down
4 changes: 2 additions & 2 deletions src/radio/src/interface.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export type OnUpdateValue = (value: string & number) => void
export type OnUpdateValue = (value: string & number & boolean) => void

export type OnUpdateValueImpl = (value: string | number) => void
export type OnUpdateValueImpl = (value: string | number | boolean) => void
4 changes: 2 additions & 2 deletions src/radio/src/use-radio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { OnUpdateValue, OnUpdateValueImpl } from './interface'
const radioProps = {
name: String,
value: {
type: [String, Number] as PropType<string | number>,
type: [String, Number, Boolean] as PropType<string | number | boolean>,
default: 'on'
},
checked: {
Expand Down Expand Up @@ -53,7 +53,7 @@ const radioProps = {
export interface RadioGroupInjection {
mergedClsPrefixRef: Ref<string>
nameRef: Ref<string | undefined>
valueRef: Ref<string | number | null>
valueRef: Ref<string | number | boolean | null>
mergedSizeRef: Ref<'small' | 'medium' | 'large'>
disabledRef: Ref<boolean>
doUpdateValue: OnUpdateValue
Expand Down

0 comments on commit 52e09e4

Please sign in to comment.