timeout-upgrade-prompt.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { useTranslation } from 'react-i18next'
  2. import { useEditorContext } from '../../../shared/context/editor-context'
  3. import StartFreeTrialButton from '../../../shared/components/start-free-trial-button'
  4. import { memo } from 'react'
  5. import PdfLogEntry from './pdf-log-entry'
  6. import UpgradeBenefits from '../../../shared/components/upgrade-benefits'
  7. function TimeoutUpgradePrompt() {
  8. const { t } = useTranslation()
  9. const { hasPremiumCompile, isProjectOwner } = useEditorContext()
  10. if (!window.ExposedSettings.enableSubscriptions || hasPremiumCompile) {
  11. return null
  12. }
  13. return (
  14. <PdfLogEntry
  15. headerTitle={
  16. isProjectOwner
  17. ? t('upgrade_for_longer_compiles')
  18. : t('ask_proj_owner_to_upgrade_for_longer_compiles')
  19. }
  20. formattedContent={
  21. <>
  22. <p>{t('free_accounts_have_timeout_upgrade_to_increase')}</p>
  23. <p>{t('plus_upgraded_accounts_receive')}:</p>
  24. <div>
  25. <UpgradeBenefits />
  26. </div>
  27. {isProjectOwner && (
  28. <p className="text-center">
  29. <StartFreeTrialButton
  30. source="compile-timeout"
  31. buttonProps={{
  32. bsStyle: 'success',
  33. className: 'row-spaced-small',
  34. }}
  35. />
  36. </p>
  37. )}
  38. </>
  39. }
  40. entryAriaLabel={
  41. isProjectOwner
  42. ? t('upgrade_for_longer_compiles')
  43. : t('ask_proj_owner_to_upgrade_for_longer_compiles')
  44. }
  45. level="success"
  46. />
  47. )
  48. }
  49. export default memo(TimeoutUpgradePrompt)