import Icon from '../../../shared/components/icon' import { useTranslation } from 'react-i18next' import PreviewLogsPaneEntry from '../../preview/components/preview-logs-pane-entry' import { usePdfPreviewContext } from '../contexts/pdf-preview-context' import { memo } from 'react' import PdfValidationIssue from './pdf-validation-issue' import TimeoutUpgradePrompt from './timeout-upgrade-prompt' import PdfPreviewError from './pdf-preview-error' import PdfClearCacheButton from './pdf-clear-cache-button' import PdfDownloadFilesButton from './pdf-download-files-button' import PdfLogsEntries from './pdf-logs-entries' import withErrorBoundary from '../../../infrastructure/error-boundary' import ErrorBoundaryFallback from './error-boundary-fallback' function PdfLogsViewer() { const { autoCompileLintingError, stopOnValidationError, error, logEntries, rawLog, validationIssues, } = usePdfPreviewContext() const { t } = useTranslation() return (
{autoCompileLintingError && stopOnValidationError && (

{t('code_check_failed_explanation')}

)} {error && } {error === 'timedout' && } {validationIssues && Object.entries(validationIssues).map(([name, issue]) => ( ))} {logEntries?.all && } {rawLog && ( )}
) } export default withErrorBoundary(memo(PdfLogsViewer), () => ( ))