radio_button.tsx 619 B

123456789101112131415161718192021222324252627282930313233
  1. import classNames from 'classnames';
  2. interface Props {
  3. value: string;
  4. checked: boolean;
  5. name: string;
  6. onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
  7. label: React.ReactNode;
  8. }
  9. export const RadioButton: React.FC<Props> = ({
  10. name,
  11. value,
  12. checked,
  13. onChange,
  14. label,
  15. }) => {
  16. return (
  17. <label className='radio-button'>
  18. <input
  19. name={name}
  20. type='radio'
  21. value={value}
  22. checked={checked}
  23. onChange={onChange}
  24. />
  25. <span className={classNames('radio-button__input', { checked })} />
  26. <span>{label}</span>
  27. </label>
  28. );
  29. };