|
@@ -5,7 +5,9 @@ import PropTypes from 'prop-types';
|
|
|
|
|
|
|
|
import { blinkElem } from '~/client/util/blink-section-header';
|
|
import { blinkElem } from '~/client/util/blink-section-header';
|
|
|
import { addSmoothScrollEvent } from '~/client/util/smooth-scroll';
|
|
import { addSmoothScrollEvent } from '~/client/util/smooth-scroll';
|
|
|
|
|
+import InterceptorManager from '~/services/interceptor-manager';
|
|
|
import GrowiRenderer from '~/services/renderer/growi-renderer';
|
|
import GrowiRenderer from '~/services/renderer/growi-renderer';
|
|
|
|
|
+import { useInterceptorManager } from '~/stores/context';
|
|
|
import { useEditorSettings } from '~/stores/editor';
|
|
import { useEditorSettings } from '~/stores/editor';
|
|
|
|
|
|
|
|
import RevisionBody from './RevisionBody';
|
|
import RevisionBody from './RevisionBody';
|
|
@@ -42,7 +44,7 @@ class LegacyRevisionRenderer extends React.PureComponent {
|
|
|
|
|
|
|
|
componentDidUpdate(prevProps) {
|
|
componentDidUpdate(prevProps) {
|
|
|
const { markdown: prevMarkdown, highlightKeywords: prevHighlightKeywords } = prevProps;
|
|
const { markdown: prevMarkdown, highlightKeywords: prevHighlightKeywords } = prevProps;
|
|
|
- const { markdown, highlightKeywords } = this.props;
|
|
|
|
|
|
|
+ const { markdown, highlightKeywords, interceptorManager } = this.props;
|
|
|
|
|
|
|
|
// render only when props.markdown is updated
|
|
// render only when props.markdown is updated
|
|
|
if (markdown !== prevMarkdown || highlightKeywords !== prevHighlightKeywords) {
|
|
if (markdown !== prevMarkdown || highlightKeywords !== prevHighlightKeywords) {
|
|
@@ -55,8 +57,6 @@ class LegacyRevisionRenderer extends React.PureComponent {
|
|
|
const HeaderLinkArray = Array.from(HeaderLink);
|
|
const HeaderLinkArray = Array.from(HeaderLink);
|
|
|
addSmoothScrollEvent(HeaderLinkArray, blinkElem);
|
|
addSmoothScrollEvent(HeaderLinkArray, blinkElem);
|
|
|
|
|
|
|
|
- const { interceptorManager } = window;
|
|
|
|
|
-
|
|
|
|
|
interceptorManager.process('postRenderHtml', this.currentRenderingContext);
|
|
interceptorManager.process('postRenderHtml', this.currentRenderingContext);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -127,11 +127,15 @@ class LegacyRevisionRenderer extends React.PureComponent {
|
|
|
|
|
|
|
|
async renderHtml() {
|
|
async renderHtml() {
|
|
|
const {
|
|
const {
|
|
|
|
|
+ interceptorManager,
|
|
|
growiRenderer,
|
|
growiRenderer,
|
|
|
highlightKeywords,
|
|
highlightKeywords,
|
|
|
} = this.props;
|
|
} = this.props;
|
|
|
|
|
|
|
|
- const { interceptorManager } = window;
|
|
|
|
|
|
|
+ if (interceptorManager == null || growiRenderer == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const context = this.currentRenderingContext;
|
|
const context = this.currentRenderingContext;
|
|
|
|
|
|
|
|
await interceptorManager.process('preRender', context);
|
|
await interceptorManager.process('preRender', context);
|
|
@@ -153,13 +157,9 @@ class LegacyRevisionRenderer extends React.PureComponent {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- const config = this.props.appContainer.getConfig();
|
|
|
|
|
- const isMathJaxEnabled = !!config.env.MATHJAX;
|
|
|
|
|
-
|
|
|
|
|
return (
|
|
return (
|
|
|
<RevisionBody
|
|
<RevisionBody
|
|
|
html={this.state.html}
|
|
html={this.state.html}
|
|
|
- isMathJaxEnabled={isMathJaxEnabled}
|
|
|
|
|
additionalClassName={this.props.additionalClassName}
|
|
additionalClassName={this.props.additionalClassName}
|
|
|
renderMathJaxOnInit
|
|
renderMathJaxOnInit
|
|
|
/>
|
|
/>
|
|
@@ -169,6 +169,7 @@ class LegacyRevisionRenderer extends React.PureComponent {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
LegacyRevisionRenderer.propTypes = {
|
|
LegacyRevisionRenderer.propTypes = {
|
|
|
|
|
+ interceptorManager: PropTypes.instanceOf(InterceptorManager).isRequired,
|
|
|
growiRenderer: PropTypes.instanceOf(GrowiRenderer).isRequired,
|
|
growiRenderer: PropTypes.instanceOf(GrowiRenderer).isRequired,
|
|
|
markdown: PropTypes.string.isRequired,
|
|
markdown: PropTypes.string.isRequired,
|
|
|
pagePath: PropTypes.string.isRequired,
|
|
pagePath: PropTypes.string.isRequired,
|
|
@@ -178,10 +179,11 @@ LegacyRevisionRenderer.propTypes = {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
|
-const RevisionRenderer = () => {
|
|
|
|
|
|
|
+const RevisionRenderer = (props) => {
|
|
|
|
|
+ const { data: interceptorManager } = useInterceptorManager();
|
|
|
const { data: editorSettings } = useEditorSettings();
|
|
const { data: editorSettings } = useEditorSettings();
|
|
|
|
|
|
|
|
- return <LegacyRevisionRenderer editorSettings={editorSettings} />;
|
|
|
|
|
|
|
+ return <LegacyRevisionRenderer {...props} interceptorManager={interceptorManager} editorSettings={editorSettings} />;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
RevisionRenderer.propTypes = {
|
|
RevisionRenderer.propTypes = {
|