pdf-preview-error-boundary-fallback.tsx 1.2 KB

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