瀏覽代碼

Moved "copied!" code to Utils

- same implementation in all files, so it's better to have one function
  for it
Martin Filser 3 年之前
父節點
當前提交
7444c11c82
共有 3 個文件被更改,包括 24 次插入23 次删除
  1. 6 14
      client/components/cards/cardDetails.js
  2. 3 9
      client/components/main/editor.js
  3. 15 0
      client/lib/utils.js

+ 6 - 14
client/components/cards/cardDetails.js

@@ -326,13 +326,9 @@ BlazeComponent.extendComponent({
         'click .js-copy-link'(event) {
           event.preventDefault();
           const promise = Utils.copyTextToClipboard(event.target.href);
-          if (promise) {
-            promise.then(() => {
-              const $tooltip = this.$('span.copied-tooltip');
-              $tooltip.show(100);
-              setTimeout(() => $tooltip.hide(100), 1000);
-            });
-          }
+
+          const $tooltip = this.$('.copied-tooltip');
+          Utils.showCopied(promise, $tooltip);
         },
         'click .js-open-card-details-menu': Popup.open('cardDetailsActions'),
         'submit .js-card-description'(event) {
@@ -1076,13 +1072,9 @@ BlazeComponent.extendComponent({
       {
         'click .js-copy-card-link-to-clipboard'(event) {
           const promise = Utils.copyTextToClipboard(location.origin + document.getElementById('cardURL').value);
-          if (promise) {
-            promise.then(() => {
-              const $tooltip = this.$('.copied-tooltip');
-              $tooltip.show(100);
-              setTimeout(() => $tooltip.hide(100), 1000);
-            });
-          }
+
+          const $tooltip = this.$('.copied-tooltip');
+          Utils.showCopied(promise, $tooltip);
         },
         'click .js-delete': Popup.afterConfirm('cardDelete', function () {
           Popup.close();

+ 3 - 9
client/components/main/editor.js

@@ -289,15 +289,9 @@ BlazeComponent.extendComponent({
         'click a.fa.fa-copy'(event) {
           const $editor = this.$('textarea.editor');
           const promise = Utils.copyTextToClipboard($editor[0].value);
-          if (promise) {
-            promise.then(() => {
-              const $tooltip = this.$('.copied-tooltip');
-              $tooltip.show(100);
-              setTimeout(() => $tooltip.hide(100), 1000);
-            }, (err) => {
-              console.error("error: ", err);
-            });
-          }
+
+          const $tooltip = this.$('.copied-tooltip');
+          Utils.showCopied(promise, $tooltip);
         },
       }
     ]

+ 15 - 0
client/lib/utils.js

@@ -506,6 +506,21 @@ Utils = {
     }
     return ret;
   },
+
+  /** show the "copied!" message
+   * @param promise the promise of Utils.copyTextToClipboard
+   * @param $tooltip jQuery tooltip element
+   */
+  showCopied(promise, $tooltip) {
+    if (promise) {
+      promise.then(() => {
+        $tooltip.show(100);
+        setTimeout(() => $tooltip.hide(100), 1000);
+      }, (err) => {
+        console.error("error: ", err);
+      });
+    }
+  },
 };
 
 // A simple tracker dependency that we invalidate every time the window is