Просмотр исходного кода

delete PreviewWithSuspense component

kaori 3 лет назад
Родитель
Сommit
1059e62f42

+ 15 - 18
packages/app/src/components/PageEditor/LinkEditModal.jsx

@@ -14,15 +14,15 @@ import {
 } from 'reactstrap';
 import validator from 'validator';
 
+
 import Linker from '~/client/models/Linker';
-import PageContainer from '~/client/services/PageContainer';
 import { apiv3Get } from '~/client/util/apiv3-client';
+import { useCurrentPagePath } from '~/stores/context';
 
 import PagePreviewIcon from '../Icons/PagePreviewIcon';
 import SearchTypeahead from '../SearchTypeahead';
-import { withUnstatedContainers } from '../UnstatedUtils';
 
-import PreviewWithSuspense from './PreviewWithSuspense';
+import Preview from './Preview';
 
 
 class LinkEditModal extends React.PureComponent {
@@ -44,7 +44,7 @@ class LinkEditModal extends React.PureComponent {
       isPreviewOpen: false,
     };
 
-    this.isApplyPukiwikiLikeLinkerPlugin = window.growiRenderer.preProcessors.some(process => process.constructor.name === 'PukiwikiLikeLinker');
+    // this.isApplyPukiwikiLikeLinkerPlugin = window.growiRenderer.preProcessors.some(process => process.constructor.name === 'PukiwikiLikeLinker');
 
     this.show = this.show.bind(this);
     this.hide = this.hide.bind(this);
@@ -267,8 +267,7 @@ class LinkEditModal extends React.PureComponent {
   }
 
   getRootPath(type) {
-    const { pageContainer } = this.props;
-    const pagePath = pageContainer.state.path;
+    const { pagePath } = this.props;
     // rootPaths of md link and pukiwiki link are different
     return type === Linker.types.markdownLink ? path.dirname(pagePath) : pagePath;
   }
@@ -308,11 +307,12 @@ class LinkEditModal extends React.PureComponent {
                 </button>
                 <Popover trigger="focus" placement="right" isOpen={this.state.isPreviewOpen} target="preview-btn" toggle={this.toggleIsPreviewOpen}>
                   <PopoverBody>
-                    {/*
-                      TODO: Omit withLoadingSppiner
-                      Please refer to https://github.com/weseek/growi/pull/6271
-                    */}
-                    <PreviewWithSuspense setMarkdown={this.setMarkdown} markdown={this.state.markdown} pagePath={pagePath} error={this.state.previewError} />
+                    {this.state.markdown != null && pagePath != null
+                    && <div className="linkedit-preview">
+                      <Preview markdown={this.state.markdown} pagePath={pagePath} />
+                    </div>
+                    }
+                    {this.state.markdown }
                   </PopoverBody>
                 </Popover>
               </div>
@@ -464,18 +464,15 @@ class LinkEditModal extends React.PureComponent {
 
 const LinkEditModalFc = React.forwardRef((props, ref) => {
   const { t } = useTranslation();
-  return <LinkEditModal t={t} ref={ref} {...props} />;
+  const { data: currentPath = '' } = useCurrentPagePath();
+  return <LinkEditModal t={t} ref={ref} pagePath={currentPath} {...props} />;
 });
 
 LinkEditModal.propTypes = {
   t: PropTypes.func.isRequired,
-  pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
+  pagePath: PropTypes.string,
   onSave: PropTypes.func,
 };
 
-/**
- * Wrapper component for using unstated
- */
-const LinkEditModalWrapper = withUnstatedContainers(LinkEditModalFc, [PageContainer]);
 
-export default LinkEditModalWrapper;
+export default LinkEditModalFc;

+ 0 - 34
packages/app/src/components/PageEditor/PreviewWithSuspense.jsx

@@ -1,34 +0,0 @@
-import React from 'react';
-
-import PropTypes from 'prop-types';
-
-// TODO: Omit withLoadingSppiner
-import { withLoadingSppiner } from '../SuspenseUtils';
-
-import Preview from './Preview';
-
-function PagePreview(props) {
-  if (props.markdown == null || props.pagePath == null) {
-    if (props.error !== '') {
-      return props.error;
-    }
-    throw (async() => {
-      await props.setMarkdown();
-    })();
-  }
-
-  return (
-    <div className="linkedit-preview">
-      <Preview markdown={props.markdown} pagePath={props.pagePath} />
-    </div>
-  );
-}
-
-PagePreview.propTypes = {
-  setMarkdown: PropTypes.func,
-  markdown: PropTypes.string,
-  pagePath: PropTypes.string,
-  error: PropTypes.string,
-};
-
-export default withLoadingSppiner(PagePreview);