import { View, TouchableOpacity, type StyleProp, type ViewStyle, } from 'react-native'; import React, { type FC, useState } from 'react'; import TRadioButton from '../TRadioButton/TRadioButton'; interface RadioData { id: number; value: string; disable?: boolean; } interface Props { data: RadioData[]; onSelectValue: (radio: RadioData) => void; selectedRadio?: (props: { size: number }) => React.ReactNode; unselectedRadio?: (props: { size: number }) => React.ReactNode; boxStyle?: StyleProp; selectedIconColor?: string; unselectedIconColor?: string; containerStyle?: StyleProp; defaultSelected?: RadioData; disable?: boolean; } const TRadioButtonGroup: FC = ({ data, onSelectValue, selectedRadio, unselectedRadio, boxStyle, selectedIconColor, unselectedIconColor, containerStyle, defaultSelected, disable, }): any => { const [selectedItem, setSelectedItem] = useState( defaultSelected || { id: -1 } ); const selectHandler = (item: any) => { if (item.disable) { return; } setSelectedItem(item); onSelectValue(item); }; return ( {data.map((item, index) => { return ( selectHandler(item)} activeOpacity={1} disabled={disable} > ); })} ); }; export default TRadioButtonGroup;