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

Merge pull request #2712 from weseek/imprv/show-link-element-preview

Imprv/show link element preview
yusuketk 5 лет назад
Родитель
Сommit
76459581fb
2 измененных файлов с 15 добавлено и 8 удалено
  1. 15 4
      src/client/js/components/PageEditor/LinkEditModal.jsx
  2. 0 4
      src/client/js/models/Linker.js

+ 15 - 4
src/client/js/components/PageEditor/LinkEditModal.jsx

@@ -56,7 +56,6 @@ class LinkEditModal extends React.PureComponent {
     this.getRootPath = this.getRootPath.bind(this);
     this.getRootPath = this.getRootPath.bind(this);
 
 
     this.generateAndSetPreviewDebounced = debounce(200, this.generateAndSetPreview.bind(this));
     this.generateAndSetPreviewDebounced = debounce(200, this.generateAndSetPreview.bind(this));
-    this.generateAndSetLinkTextPreviewDebounced = debounce(200, this.generateAndSetLinkTextPreview.bind(this));
   }
   }
 
 
   componentDidUpdate(prevProps, prevState) {
   componentDidUpdate(prevProps, prevState) {
@@ -65,7 +64,6 @@ class LinkEditModal extends React.PureComponent {
     if (linkInputValue !== prevLinkInputValue) {
     if (linkInputValue !== prevLinkInputValue) {
       this.generateAndSetPreviewDebounced(linkInputValue);
       this.generateAndSetPreviewDebounced(linkInputValue);
     }
     }
-    this.generateAndSetLinkTextPreviewDebounced();
   }
   }
 
 
   // defaultMarkdownLink is an instance of Linker
   // defaultMarkdownLink is an instance of Linker
@@ -189,10 +187,21 @@ class LinkEditModal extends React.PureComponent {
     this.setState({ markdown, permalink });
     this.setState({ markdown, permalink });
   }
   }
 
 
-  generateAndSetLinkTextPreview() {
+  renderLinkPreview() {
     const linker = this.generateLink();
     const linker = this.generateLink();
+
+    if (this.isUsePermanentLink && this.permalink != null) {
+      linker.link = this.permalink;
+    }
+
+    if (linker.label === '') {
+      linker.label = linker.link;
+    }
+
     const linkText = linker.generateMarkdownText();
     const linkText = linker.generateMarkdownText();
-    this.setState({ linkText });
+    return (
+      <div>{linkText} &gt; <a href={linker.link}>{linker.label}</a></div>
+    );
   }
   }
 
 
   handleChangeTypeahead(selected) {
   handleChangeTypeahead(selected) {
@@ -357,6 +366,8 @@ class LinkEditModal extends React.PureComponent {
                   </form>
                   </form>
                 </div>
                 </div>
               </div>
               </div>
+              {/* TODO GW-3448 fix layout */}
+              {this.renderLinkPreview()}
             </div>
             </div>
 
 
             <div className="col d-none d-lg-block pr-0 mr-3 overflow-auto">{this.renderPreview()}</div>
             <div className="col d-none d-lg-block pr-0 mr-3 overflow-auto">{this.renderPreview()}</div>

+ 0 - 4
src/client/js/models/Linker.js

@@ -26,10 +26,6 @@ export default class Linker {
   }
   }
 
 
   generateMarkdownText() {
   generateMarkdownText() {
-    if (this.label === '') {
-      this.label = this.link;
-    }
-
     if (this.type === Linker.types.pukiwikiLink) {
     if (this.type === Linker.types.pukiwikiLink) {
       if (this.label === this.link) return `[[${this.link}]]`;
       if (this.label === this.link) return `[[${this.link}]]`;
       return `[[${this.label}>${this.link}]]`;
       return `[[${this.label}>${this.link}]]`;