pdf-error-state.tsx 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import OLButton from '@/features/ui/components/ol/ol-button'
  2. import MaterialIcon from '@/shared/components/material-icon'
  3. import { useTranslation } from 'react-i18next'
  4. import { useRailTabContext } from '../../contexts/rail-tab-context'
  5. import { usePdfPreviewContext } from '@/features/pdf-preview/components/pdf-preview-provider'
  6. import { useDetachCompileContext as useCompileContext } from '@/shared/context/detach-compile-context'
  7. import { useFeatureFlag } from '@/shared/context/split-test-context'
  8. function PdfErrorState() {
  9. const { loadingError } = usePdfPreviewContext()
  10. // TODO ide-redesign-cleanup: rename showLogs to something else and check usages
  11. const { showLogs } = useCompileContext()
  12. const { t } = useTranslation()
  13. const { setSelectedTab: setSelectedRailTab } = useRailTabContext()
  14. const newEditor = useFeatureFlag('editor-redesign')
  15. if (!newEditor || (!loadingError && !showLogs)) {
  16. return null
  17. }
  18. return (
  19. <div className="pdf-error-state">
  20. <div className="pdf-error-state-top-section">
  21. <div className="pdf-error-state-warning-icon">
  22. <MaterialIcon type="warning" />
  23. </div>
  24. <div className="pdf-error-state-text">
  25. <p className="pdf-error-state-label">{t('pdf_couldnt_compile')}</p>
  26. <p className="pdf-error-state-description">
  27. {t('we_are_unable_to_generate_the_pdf_at_this_time')}
  28. </p>
  29. </div>
  30. <OLButton
  31. variant="secondary"
  32. size="sm"
  33. onClick={() => {
  34. setSelectedRailTab('errors')
  35. }}
  36. >
  37. {t('check_logs')}
  38. </OLButton>
  39. </div>
  40. <div className="pdf-error-state-info-box">
  41. <div className="pdf-error-state-info-box-title">
  42. <MaterialIcon type="info" unfilled />
  43. {t('why_might_this_happen')}
  44. </div>
  45. <ul className="pdf-error-state-info-box-text">
  46. <li>{t('there_is_an_unrecoverable_latex_error')}</li>
  47. <li>{t('the_document_environment_contains_no_content')}</li>
  48. <li>{t('this_project_contains_a_file_called_output')}</li>
  49. </ul>
  50. </div>
  51. </div>
  52. )
  53. }
  54. export default PdfErrorState