import React from 'react'; import { StyleSheet } from 'react-native'; import { HelperText } from '../../utils/HelperText'; import { RadioSquare } from './RadioSquare'; import type { NumberStringValue, RadioGroupButtonProps } from './types'; import { SxProps } from '../../lib/styleDictionary'; import { Box } from '../Box'; export const RadioButton: React.FC = ({ options, value, error, onChange, helperText, defaultValue, backgroundColors, labelColors, size = 'middle', itemSx = {}, borderRadius: borderRadiusProp = 20, ...sxProps }) => { const [internalValue, setInternalValue] = React.useState(''); const onInternalChange = (val: NumberStringValue) => { setInternalValue(val); onChange && onChange(val); }; React.useEffect(() => { setInternalValue((prev) => { if (prev !== value) { return value; } return prev; }); }, [value]); React.useEffect(() => { setInternalValue((prev) => { if (!prev) { return defaultValue; } return prev; }); }, [defaultValue]); return ( {options.map((option) => { return ( ); })} {(error || helperText) && ( {helperText} )} ); }; const styles = StyleSheet.create({ wrapper: { marginBottom: 10 }, vertical: { flexDirection: 'column' }, horizontal: { flexDirection: 'row' } });