ant-design/components/radio/interface.ts

64 lines
1.8 KiB
TypeScript
Raw Normal View History

import type * as React from 'react';
import type { AbstractCheckboxProps } from '../checkbox/Checkbox';
2022-06-22 14:57:09 +08:00
import type { AbstractCheckboxGroupProps } from '../checkbox/Group';
import type { DisabledType } from '../config-provider/DisabledContext';
import type { SizeType } from '../config-provider/SizeContext';
2017-11-21 15:12:03 +08:00
export type { CheckboxRef as RadioRef } from 'rc-checkbox';
2018-07-23 10:01:42 +08:00
export type RadioGroupButtonStyle = 'outline' | 'solid';
export type RadioGroupOptionType = 'default' | 'button';
2018-07-23 10:01:42 +08:00
2017-11-21 15:12:03 +08:00
export interface RadioGroupProps extends AbstractCheckboxGroupProps {
defaultValue?: any;
value?: any;
onChange?: (e: RadioChangeEvent) => void;
size?: SizeType;
disabled?: DisabledType;
2017-11-21 15:12:03 +08:00
onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
name?: string;
children?: React.ReactNode;
2017-12-01 11:50:07 +08:00
id?: string;
optionType?: RadioGroupOptionType;
2018-07-23 10:01:42 +08:00
buttonStyle?: RadioGroupButtonStyle;
onFocus?: React.FocusEventHandler<HTMLDivElement>;
onBlur?: React.FocusEventHandler<HTMLDivElement>;
2017-11-21 15:12:03 +08:00
}
export interface RadioGroupContextProps {
onChange: (e: RadioChangeEvent) => void;
value: any;
disabled?: boolean;
name?: string;
/**
* Control the appearance for Radio to display as button or not
*
* @default 'default'
* @internal
*/
optionType?: RadioGroupOptionType;
2017-11-21 15:12:03 +08:00
}
export interface RadioProps extends AbstractCheckboxProps<RadioChangeEvent> {
/**
* Control the appearance for Radio to display as button or not
*
* @default 'default'
* @internal
*/
optionType?: RadioGroupOptionType;
}
export interface RadioChangeEventTarget extends RadioProps {
checked: boolean;
}
export interface RadioChangeEvent {
target: RadioChangeEventTarget;
stopPropagation: () => void;
preventDefault: () => void;
nativeEvent: MouseEvent;
}
export type RadioOptionTypeContextProps = RadioGroupOptionType;