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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 jsx-a11y/anchor-has-content
  11. <a
  12. href="/learn/how-to/Resolving_access%2C_loading%2C_and_display_problems"
  13. target="_blank"
  14. key="troubleshooting-link"
  15. />,
  16. ]}
  17. />
  18. )
  19. switch (type) {
  20. case 'pdf':
  21. return (
  22. <ErrorBoundaryFallback>
  23. <p>{t('pdf_viewer_error')}</p>
  24. <p>{showInfoLink}</p>
  25. </ErrorBoundaryFallback>
  26. )
  27. case 'logs':
  28. return (
  29. <ErrorBoundaryFallback>
  30. <p>{t('log_viewer_error')}</p>
  31. <p>{showInfoLink}</p>
  32. </ErrorBoundaryFallback>
  33. )
  34. case 'preview':
  35. default:
  36. return (
  37. <ErrorBoundaryFallback>
  38. <p>{t('pdf_preview_error')}</p>
  39. <p>{showInfoLink}</p>
  40. </ErrorBoundaryFallback>
  41. )
  42. }
  43. }
  44. PdfPreviewErrorBoundaryFallback.propTypes = {
  45. type: PropTypes.oneOf(['preview', 'pdf', 'logs']).isRequired,
  46. }
  47. export default PdfPreviewErrorBoundaryFallback