| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { useTranslation } from 'react-i18next'
- import { Row, Col, Button, Modal } from 'react-bootstrap'
- import AccessibleModal from '../../../../shared/components/accessible-modal'
- import Icon from '../../../../shared/components/icon'
- import { useProjectContext } from '../../../../shared/context/project-context'
- import { useUserContext } from '../../../../shared/context/user-context'
- import { startFreeTrial, upgradePlan } from '../../../../main/account-upgrade'
- import { memo } from 'react'
- type UpgradeTrackChangesModalProps = {
- show: boolean
- setShow: React.Dispatch<React.SetStateAction<boolean>>
- }
- function UpgradeTrackChangesModal({
- show,
- setShow,
- }: UpgradeTrackChangesModalProps) {
- const { t } = useTranslation()
- const project = useProjectContext()
- const user = useUserContext()
- return (
- <AccessibleModal show={show} onHide={() => setShow(false)}>
- <Modal.Header closeButton>
- <h3>{t('upgrade_to_track_changes')}</h3>
- </Modal.Header>
- <Modal.Body>
- <div className="teaser-video-container">
- {/* eslint-disable-next-line jsx-a11y/media-has-caption */}
- <video className="teaser-video" autoPlay loop>
- <source
- src="/img/teasers/track-changes/teaser-track-changes.mp4"
- type="video/mp4"
- />
- <img
- src="/img/teasers/track-changes/teaser-track-changes.gif"
- alt={t('demonstrating_track_changes_feature')}
- />
- </video>
- </div>
- <h4 className="teaser-title">
- {t('see_changes_in_your_documents_live')}
- </h4>
- <p className="small">{t('refresh_page_after_starting_free_trial')}</p>
- <Row>
- <Col md={10} mdOffset={1}>
- <ul className="list-unstyled">
- {[
- t('track_any_change_in_real_time'),
- t('review_your_peers_work'),
- t('accept_or_reject_each_changes_individually'),
- ].map(translation => (
- <li key={translation}>
- <Icon type="check" /> {translation}
- </li>
- ))}
- </ul>
- </Col>
- </Row>
- {project.owner && (
- <Row className="text-center">
- {project.owner._id === user.id ? (
- user.allowedFreeTrial ? (
- <Button
- bsStyle={null}
- className="btn-primary"
- onClick={() => startFreeTrial('track-changes')}
- >
- {t('try_it_for_free')}
- </Button>
- ) : (
- <Button
- bsStyle={null}
- className="btn-primary"
- onClick={() => upgradePlan('project-sharing')}
- >
- {t('upgrade')}
- </Button>
- )
- ) : (
- <p>
- <strong>
- {t(
- 'please_ask_the_project_owner_to_upgrade_to_track_changes'
- )}
- </strong>
- </p>
- )}
- </Row>
- )}
- </Modal.Body>
- <Modal.Footer>
- <Button
- bsStyle={null}
- className="btn-secondary"
- onClick={() => setShow(false)}
- >
- {t('close')}
- </Button>
- </Modal.Footer>
- </AccessibleModal>
- )
- }
- export default memo(UpgradeTrackChangesModal)
|