import classNames from 'classnames' import PropTypes, { InferProps } from 'prop-types' import React from 'react' import { View } from '@tarojs/components' import { CommonEvent } from '@tarojs/components/types/common' import { AtRadioProps, RadioOption } from '../../../types/radio' import AtIcon from '../icon' export default class AtRadio extends React.Component> { public static defaultProps: AtRadioProps public static propTypes: InferProps> private handleClick(option: RadioOption, event: CommonEvent): void { if (option.disabled) return this.props.onClick(option.value, event) } public render(): JSX.Element { const { customStyle, className, options, value, border } = this.props return ( {options.map((option, index) => ( {option.label} {value === option.value && ( )} {option.desc && ( {option.desc} )} ))} ) } } AtRadio.defaultProps = { customStyle: '', className: '', value: '', border: true, options: [], // eslint-disable-next-line @typescript-eslint/no-empty-function onClick: (): void => {}, } AtRadio.propTypes = { customStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.string]), className: PropTypes.oneOfType([PropTypes.array, PropTypes.string]), value: PropTypes.string, options: PropTypes.array, onClick: PropTypes.func, }