timeout-upgrade-prompt.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. buttonStyle="success"
  32. classes={{ button: 'row-spaced-small' }}
  33. />
  34. </p>
  35. )}
  36. </>
  37. }
  38. entryAriaLabel={
  39. isProjectOwner
  40. ? t('upgrade_for_longer_compiles')
  41. : t('ask_proj_owner_to_upgrade_for_longer_compiles')
  42. }
  43. level="success"
  44. />
  45. )
  46. }
  47. export default memo(TimeoutUpgradePrompt)