missing-billing-information.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { Trans, useTranslation } from 'react-i18next'
  2. import { Card, CardBody, Row, Col } from 'react-bootstrap-5'
  3. import getMeta from '@/utils/meta'
  4. import IconButton from '@/features/ui/components/bootstrap-5/icon-button'
  5. import OLNotification from '@/features/ui/components/ol/ol-notification'
  6. function MissingBillingInformation() {
  7. const { t } = useTranslation()
  8. const groupName = getMeta('ol-groupName')
  9. return (
  10. <div className="container">
  11. <Row>
  12. <Col xl={{ span: 4, offset: 4 }} md={{ span: 6, offset: 3 }}>
  13. <div className="group-heading" data-testid="group-heading">
  14. <IconButton
  15. variant="ghost"
  16. href="/user/subscription"
  17. size="lg"
  18. icon="arrow_back"
  19. accessibilityLabel={t('back_to_subscription')}
  20. />
  21. <h2>{groupName || t('group_subscription')}</h2>
  22. </div>
  23. <Card>
  24. <CardBody>
  25. <OLNotification
  26. type="error"
  27. title={t('missing_payment_details')}
  28. content={
  29. <Trans
  30. i18nKey="it_looks_like_your_payment_details_are_missing_please_update_your_billing_information"
  31. components={[
  32. // eslint-disable-next-line jsx-a11y/anchor-has-content, react/jsx-key
  33. <a href="/user/subscription" rel="noreferrer noopener" />,
  34. // eslint-disable-next-line jsx-a11y/anchor-has-content, react/jsx-key
  35. <a href="/contact" rel="noreferrer noopener" />,
  36. ]}
  37. />
  38. }
  39. className="m-0"
  40. />
  41. </CardBody>
  42. </Card>
  43. </Col>
  44. </Row>
  45. </div>
  46. )
  47. }
  48. export default MissingBillingInformation