UNPKG

@arco-design/web-react

Version:

Arco Design React UI Library.

104 lines (103 loc) 2.64 kB
import { CSSProperties, ChangeEvent, ReactNode, HTMLAttributes } from 'react'; /** * @title Radio */ export interface RadioProps<T = any> extends Omit<HTMLAttributes<HTMLLabelElement>, 'children' | 'className' | 'onChange'> { style?: CSSProperties; className?: string | string[]; /** * @zh 是否禁用 * @en Whether the radio is disabled */ disabled?: boolean; /** * @zh 控件的 `value` * @en The value of radio */ value?: T; /** * @zh 是否选中(受控模式) * @en Whether the radio is checked (Controlled) */ checked?: boolean; /** * @zh 初始是否选中 * @en Whether the radio is initially selected */ defaultChecked?: boolean; /** * @zh 值变化的回调 * @en Callback when radio status change */ onChange?: (checked: boolean, event: ChangeEvent) => void; children?: ReactNode | ((value: { checked: boolean; }) => ReactNode); } /** * @title Radio.Group */ export interface RadioGroupProps { style?: CSSProperties; className?: string | string[]; /** * @zh 禁用 * @en disabled */ disabled?: boolean; /** * @zh `Radio` 的 name * @en `Radio`'s name attr */ name?: string; /** * @zh 单选的类型,是单选还是按钮 * @en type of `Radio` * @defaultValue radio */ type?: 'radio' | 'button'; /** * @zh 方向 * @en Arrangement direction * @defaultValue horizontal */ direction?: 'vertical' | 'horizontal'; /** * @zh 按钮类型的单选框尺寸(只在按钮类型下生效) * @en The size of radio button style(Only effective under `button` type) */ size?: 'small' | 'default' | 'large' | 'mini'; mode?: 'outline' | 'fill'; /** * @zh 点击单选的回调 * @en Callback when radio status change */ onChange?: (value: any, event: ChangeEvent) => void; /** * @zh 默认选中的值 * @en To set default value */ defaultValue?: any; /** * @zh 选中的值(受控模式) * @en To set value */ value?: any; /** * @zh 以数组配置的形式来设置单选组 * @en Set children options */ options?: (string | number | { label: ReactNode; value: any; disabled?: boolean; })[]; } export interface RadioGroupContextProps { type: 'radio' | 'button'; value?: any; disabled?: boolean; group?: boolean; name?: RadioGroupProps['name']; onChangeValue?: (value: any, event: ChangeEvent) => void; }