payment-method-toggle.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { useTranslation } from 'react-i18next'
  2. import { FormGroup, ControlLabel, Col } from 'react-bootstrap'
  3. import Icon from '../../../../../shared/components/icon'
  4. type PaymentMethodToggleProps = {
  5. onChange: (e: React.ChangeEvent<HTMLInputElement>) => void
  6. paymentMethod: string
  7. }
  8. function PaymentMethodToggle(props: PaymentMethodToggleProps) {
  9. const { t } = useTranslation()
  10. return (
  11. <FormGroup
  12. className="payment-method-toggle"
  13. data-testid="payment-method-toggle"
  14. >
  15. <hr className="thin" />
  16. <div className="radio">
  17. <Col xs={8}>
  18. <ControlLabel>
  19. <input
  20. type="radio"
  21. name="payment_method"
  22. value="credit_card"
  23. onChange={props.onChange}
  24. checked={props.paymentMethod === 'credit_card'}
  25. />
  26. <strong>
  27. {t('card_payment')}&nbsp;
  28. <span className="hidden-xs">
  29. <Icon type="cc-visa" /> <Icon type="cc-mastercard" />{' '}
  30. <Icon type="cc-amex" />
  31. </span>
  32. </strong>
  33. </ControlLabel>
  34. </Col>
  35. <Col xs={4}>
  36. <ControlLabel>
  37. <input
  38. type="radio"
  39. name="payment_method"
  40. value="paypal"
  41. onChange={props.onChange}
  42. checked={props.paymentMethod === 'paypal'}
  43. />
  44. <strong>
  45. PayPal&nbsp;
  46. <span className="hidden-xs">
  47. <Icon type="cc-paypal" />
  48. </span>
  49. </strong>
  50. </ControlLabel>
  51. </Col>
  52. </div>
  53. </FormGroup>
  54. )
  55. }
  56. export default PaymentMethodToggle