import React from 'react' import PropTypes from 'prop-types' import { useTranslation } from 'react-i18next' import PreviewLogsPaneEntry from './preview-logs-pane-entry' import Icon from '../../../shared/components/icon' import { useApplicationContext } from '../../../shared/context/application-context' import { useEditorContext } from '../../../shared/context/editor-context' import { startFreeTrial } from '../../../main/account-upgrade' function PreviewError({ name }) { const { isProjectOwner } = useEditorContext({ isProjectOwner: PropTypes.bool }) const { exposedSettings: { enableSubscriptions } } = useApplicationContext({ exposedSettings: PropTypes.shape({ enableSubscriptions: PropTypes.bool }) .isRequired }) const { t } = useTranslation() let errorTitle let errorContent if (name === 'error') { errorTitle = t('server_error') errorContent = <>{t('somthing_went_wrong_compiling')} } else if (name === 'renderingError') { errorTitle = t('pdf_rendering_error') errorContent = <>{t('something_went_wrong_rendering_pdf')} } else if (name === 'clsiMaintenance') { errorTitle = t('server_error') errorContent = <>{t('clsi_maintenance')} } else if (name === 'clsiUnavailable') { errorTitle = t('server_error') errorContent = <>{t('clsi_unavailable')} } else if (name === 'tooRecentlyCompiled') { errorTitle = t('server_error') errorContent = <>{t('too_recently_compiled')} } else if (name === 'compileTerminated') { errorTitle = t('terminated') errorContent = <>{t('compile_terminated_by_user')} } else if (name === 'rateLimited') { errorTitle = t('pdf_compile_rate_limit_hit') errorContent = <>{t('project_flagged_too_many_compiles')} } else if (name === 'compileInProgress') { errorTitle = t('pdf_compile_in_progress_error') errorContent = <>{t('pdf_compile_try_again')} } else if (name === 'timedout') { errorTitle = t('timedout') errorContent = ( <> {t('proj_timed_out_reason')}
{t('learn_how_to_make_documents_compile_quickly')}
) } else if (name === 'autoCompileDisabled') { errorTitle = t('autocompile_disabled') errorContent = <>{t('autocompile_disabled_reason')} } return errorTitle ? ( <> {name === 'timedout' && enableSubscriptions ? ( ) : null} ) : null } function TimeoutUpgradePrompt({ isProjectOwner }) { const { t } = useTranslation() function handleStartFreeTrialClick() { startFreeTrial('compile-timeout') } const timeoutUpgradePromptContent = ( <>

{t('free_accounts_have_timeout_upgrade_to_increase')}

{t('plus_upgraded_accounts_receive')}:

  •   {t('unlimited_projects')}
  •   {t('collabs_per_proj', { collabcount: 'Multiple' })}
  •   {t('full_doc_history')}
  •   {t('sync_to_dropbox')}
  •   {t('sync_to_github')}
  •   {t('compile_larger_projects')}
{isProjectOwner ? (

) : null} ) return ( ) } PreviewError.propTypes = { name: PropTypes.string.isRequired } TimeoutUpgradePrompt.propTypes = { isProjectOwner: PropTypes.bool.isRequired } export default PreviewError