|
@@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
import { withUnstatedContainers } from '../UnstatedUtils';
|
|
import { withUnstatedContainers } from '../UnstatedUtils';
|
|
|
import AppContainer from '../../services/AppContainer';
|
|
import AppContainer from '../../services/AppContainer';
|
|
|
import PageContainer from '../../services/PageContainer';
|
|
import PageContainer from '../../services/PageContainer';
|
|
|
|
|
+import NavigationContainer from '../../services/NavigationContainer';
|
|
|
import GrowiRenderer from '../../util/GrowiRenderer';
|
|
import GrowiRenderer from '../../util/GrowiRenderer';
|
|
|
|
|
|
|
|
import RevisionBody from './RevisionBody';
|
|
import RevisionBody from './RevisionBody';
|
|
@@ -35,7 +36,7 @@ class RevisionRenderer 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, navigationContainer } = 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) {
|
|
@@ -44,6 +45,10 @@ class RevisionRenderer extends React.PureComponent {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ const HeaderLink = document.getElementsByClassName('revision-head-link');
|
|
|
|
|
+ const HeaderLinkArray = Array.from(HeaderLink);
|
|
|
|
|
+ navigationContainer.addSmoothScrollEvent(HeaderLinkArray);
|
|
|
|
|
+
|
|
|
const { interceptorManager } = this.props.appContainer;
|
|
const { interceptorManager } = this.props.appContainer;
|
|
|
|
|
|
|
|
interceptorManager.process('postRenderHtml', this.currentRenderingContext);
|
|
interceptorManager.process('postRenderHtml', this.currentRenderingContext);
|
|
@@ -115,12 +120,12 @@ class RevisionRenderer extends React.PureComponent {
|
|
|
/**
|
|
/**
|
|
|
* Wrapper component for using unstated
|
|
* Wrapper component for using unstated
|
|
|
*/
|
|
*/
|
|
|
-const RevisionRendererWrapper = withUnstatedContainers(RevisionRenderer, [AppContainer, PageContainer]);
|
|
|
|
|
|
|
+const RevisionRendererWrapper = withUnstatedContainers(RevisionRenderer, [AppContainer, PageContainer, NavigationContainer]);
|
|
|
|
|
|
|
|
RevisionRenderer.propTypes = {
|
|
RevisionRenderer.propTypes = {
|
|
|
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
|
|
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
|
|
|
pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
|
|
pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
|
|
|
-
|
|
|
|
|
|
|
+ navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
|
|
|
growiRenderer: PropTypes.instanceOf(GrowiRenderer).isRequired,
|
|
growiRenderer: PropTypes.instanceOf(GrowiRenderer).isRequired,
|
|
|
markdown: PropTypes.string.isRequired,
|
|
markdown: PropTypes.string.isRequired,
|
|
|
highlightKeywords: PropTypes.string,
|
|
highlightKeywords: PropTypes.string,
|