mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-17 02:18:07 +08:00
aa6c0a19c8
* feat: radio component * docs: update md * fix: snap * test components * fix: use optionType * fix name * add warning * fix
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import * as React from 'react';
|
|
import { AbstractCheckboxGroupProps } from '../checkbox/Group';
|
|
import { AbstractCheckboxProps } from '../checkbox/Checkbox';
|
|
import { SizeType } from '../config-provider/SizeContext';
|
|
|
|
export type RadioGroupButtonStyle = 'outline' | 'solid';
|
|
export type RadioGroupOptionType = 'default' | 'button';
|
|
|
|
export interface RadioGroupProps extends AbstractCheckboxGroupProps {
|
|
defaultValue?: any;
|
|
value?: any;
|
|
onChange?: (e: RadioChangeEvent) => void;
|
|
size?: SizeType;
|
|
onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
|
|
onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
|
|
name?: string;
|
|
children?: React.ReactNode;
|
|
id?: string;
|
|
optionType?: RadioGroupOptionType;
|
|
buttonStyle?: RadioGroupButtonStyle;
|
|
}
|
|
|
|
export interface RadioGroupContextProps {
|
|
onChange: (e: RadioChangeEvent) => void;
|
|
value: any;
|
|
disabled?: boolean;
|
|
name?: string;
|
|
}
|
|
|
|
export type RadioProps = AbstractCheckboxProps<RadioChangeEvent>;
|
|
|
|
export interface RadioChangeEventTarget extends RadioProps {
|
|
checked: boolean;
|
|
}
|
|
|
|
export interface RadioChangeEvent {
|
|
target: RadioChangeEventTarget;
|
|
stopPropagation: () => void;
|
|
preventDefault: () => void;
|
|
nativeEvent: MouseEvent;
|
|
}
|