diff --git a/services/web/config/settings.defaults.js b/services/web/config/settings.defaults.js index dbe8bed627..f1d679394a 100644 --- a/services/web/config/settings.defaults.js +++ b/services/web/config/settings.defaults.js @@ -903,7 +903,7 @@ module.exports = { editorToolbarButtons: [], sourceEditorExtensions: [], sourceEditorComponents: [], - pdfLogsComponents: [], + pdfLogEntryComponents: [], sourceEditorCompletionSources: [], sourceEditorSymbolPalette: [], sourceEditorToolbarComponents: [], diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry-content.jsx b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry-content.jsx index f4bfdb2207..91b4e74528 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry-content.jsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry-content.jsx @@ -1,11 +1,16 @@ import { useTranslation } from 'react-i18next' import PdfLogEntryRawContent from './pdf-log-entry-raw-content' import PropTypes from 'prop-types' +import importOverleafModules from '../../../../macros/import-overleaf-module.macro' + +const pdfLogEntryComponents = importOverleafModules('pdfLogEntryComponents') export default function PdfLogEntryContent({ rawContent, formattedContent, extraInfoURL, + index, + logEntry, }) { const { t } = useTranslation() @@ -23,6 +28,13 @@ export default function PdfLogEntryContent({ )} + {logEntry && + pdfLogEntryComponents.map( + ({ import: { default: Component }, path }) => ( + + ) + )} + {rawContent && ( )} @@ -34,4 +46,6 @@ PdfLogEntryContent.propTypes = { rawContent: PropTypes.string, formattedContent: PropTypes.node, extraInfoURL: PropTypes.string, + index: PropTypes.number, + logEntry: PropTypes.any, } diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.jsx b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.jsx index f3ff26e2df..3cfe787492 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.jsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.jsx @@ -23,6 +23,8 @@ function PdfLogEntry({ contentDetails, onSourceLocationClick, onClose, + index, + logEntry, }) { if (ruleId && HumanReadableLogsHints[ruleId]) { const hint = HumanReadableLogsHints[ruleId] @@ -59,11 +61,14 @@ function PdfLogEntry({ showCloseButton={showCloseButton} onClose={onClose} /> + {(rawContent || formattedContent) && ( )} @@ -94,6 +99,8 @@ PdfLogEntry.propTypes = { contentDetails: PropTypes.arrayOf(PropTypes.string), onSourceLocationClick: PropTypes.func, onClose: PropTypes.func, + index: PropTypes.number, + logEntry: PropTypes.any, } export default memo(PdfLogEntry) diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-logs-entries.jsx b/services/web/frontend/js/features/pdf-preview/components/pdf-logs-entries.jsx index a23adf9c49..8344526870 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-logs-entries.jsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-logs-entries.jsx @@ -4,12 +4,9 @@ import { useTranslation } from 'react-i18next' import PreviewLogsPaneMaxEntries from '../../preview/components/preview-logs-pane-max-entries' import PdfLogEntry from './pdf-log-entry' import { useDetachCompileContext } from '../../../shared/context/detach-compile-context' -import importOverleafModules from '../../../../macros/import-overleaf-module.macro' const LOG_PREVIEW_LIMIT = 100 -const pdfLogsComponents = importOverleafModules('pdfLogsComponents') - function PdfLogsEntries({ entries, hasErrors }) { const { t } = useTranslation() const { syncToEntry } = useDetachCompileContext() @@ -25,13 +22,11 @@ function PdfLogsEntries({ entries, hasErrors }) { /> )} - {pdfLogsComponents.map(({ import: { default: Component }, path }) => ( - - ))} - - {logEntries.map(logEntry => ( + {logEntries.map((logEntry, index) => (