import * as React from 'react';
import { GestureResponderEvent, Platform } from 'react-native';
import RadioButtonAndroid from './RadioButtonAndroid';
import RadioButtonIOS from './RadioButtonIOS';
import { useInternalTheme } from '../../core/theming';
import type { ThemeProp } from '../../types';
export type Props = {
/**
* Value of the radio button
*/
value: string;
/**
* Status of radio button.
*/
status?: 'checked' | 'unchecked';
/**
* Whether radio is disabled.
*/
disabled?: boolean;
/**
* Function to execute on press.
*/
onPress?: (e: GestureResponderEvent) => void;
/**
* Custom color for unchecked radio.
*/
uncheckedColor?: string;
/**
* Custom color for radio.
*/
color?: string;
/**
* @optional
*/
theme?: ThemeProp;
/**
* testID to be used on tests.
*/
testID?: string;
};
/**
* Radio buttons allow the selection a single option from a set.
*
* ## Usage
* ```js
* import * as React from 'react';
* import { View } from 'react-native';
* import { RadioButton } from 'react-native-paper';
*
* const MyComponent = () => {
* const [checked, setChecked] = React.useState('first');
*
* return (
*
* setChecked('first')}
* />
* setChecked('second')}
* />
*
* );
* };
*
* export default MyComponent;
* ```
*/
const RadioButton = ({ theme: themeOverrides, ...props }: Props) => {
const theme = useInternalTheme(themeOverrides);
const Button = Platform.select({
default: RadioButtonAndroid,
ios: RadioButtonIOS,
});
return ;
};
export default RadioButton;