pdf-preview-error-boundary-fallback.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import PropTypes from 'prop-types'
  2. import { Trans, useTranslation } from 'react-i18next'
  3. import { ErrorBoundaryFallback } from '../../../shared/components/error-boundary-fallback'
  4. function PdfPreviewErrorBoundaryFallback({ type }) {
  5. const { t } = useTranslation()
  6. const showInfoLink = (
  7. <Trans
  8. i18nKey="try_recompile_project_or_troubleshoot"
  9. components={[
  10. // eslint-disable-next-line react/jsx-key, jsx-a11y/anchor-has-content, jsx-a11y/anchor-is-valid
  11. <a href="/learn/how-to/Resolving_access%2C_loading%2C_and_display_problems" />,
  12. ]}
  13. />
  14. )
  15. switch (type) {
  16. case 'pdf':
  17. return (
  18. <ErrorBoundaryFallback>
  19. <p>{t('pdf_viewer_error')}</p>
  20. <p>{showInfoLink}</p>
  21. </ErrorBoundaryFallback>
  22. )
  23. case 'logs':
  24. return (
  25. <ErrorBoundaryFallback>
  26. <p>{t('log_viewer_error')}</p>
  27. <p>{showInfoLink}</p>
  28. </ErrorBoundaryFallback>
  29. )
  30. case 'preview':
  31. default:
  32. return (
  33. <ErrorBoundaryFallback>
  34. <p>{t('pdf_preview_error')}</p>
  35. <p>{showInfoLink}</p>
  36. </ErrorBoundaryFallback>
  37. )
  38. }
  39. }
  40. PdfPreviewErrorBoundaryFallback.propTypes = {
  41. type: PropTypes.oneOf(['preview', 'pdf', 'logs']).isRequired,
  42. }
  43. export default PdfPreviewErrorBoundaryFallback