Sha256: bacf66b9be31e0536669403321f9b8a99392dc13fa7d6bc4aeefd7325956f3ca

Contents?: true

Size: 1 KB

Versions: 59

Compression:

Stored size: 1 KB

Contents

import { decodeEntities } from "../helpers/string";

function initClipboard(context = {}) {
  let copyTimeout = null;

  return Object.assign(context, {
    copied: false,

    async copyToClipboard(target = null) {
      let targetEl;
      if (this.$refs.copyTarget) {
        targetEl = this.$refs.copyTarget;
      } else if (typeof target === "string") {
        targetEl = document.querySelector(target);
      }

      if (!targetEl) {
        this.warn("Could not find copy target");
        return false;
      }

      const content = decodeEntities(targetEl.innerHTML.trim());

      await window.navigator.clipboard.writeText(content);
      this.copied = true;

      if (copyTimeout) {
        clearTimeout(copyTimeout);
      }

      copyTimeout = setTimeout(() => {
        this.copied = false;
        this.onCopyComplete();
      }, 1000);

      return content;
    },

    onCopyComplete() {},
  });
}

export default function clipboardComponent() {
  return initClipboard({});
}

export { initClipboard };

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
lookbook-2.3.5 assets/js/components/clipboard.js
lookbook-2.3.4 assets/js/components/clipboard.js
lookbook-2.3.3 assets/js/components/clipboard.js
lookbook-2.3.2 assets/js/components/clipboard.js
lookbook-2.3.0 assets/js/components/clipboard.js
lookbook-2.2.2 assets/js/components/clipboard.js
lookbook-2.2.1 assets/js/components/clipboard.js
lookbook-2.2.0 assets/js/components/clipboard.js
lookbook-2.1.1 assets/js/components/clipboard.js
lookbook-2.1.0 assets/js/components/clipboard.js
lookbook-2.0.5 assets/js/components/clipboard.js
lookbook-2.0.4 assets/js/components/clipboard.js
lookbook-2.0.3 assets/js/components/clipboard.js
lookbook-2.0.2 assets/js/components/clipboard.js
lookbook-2.0.1 assets/js/components/clipboard.js
lookbook-2.0.0 assets/js/components/clipboard.js
lookbook-2.0.0.rc.3 assets/js/components/clipboard.js
lookbook-1.5.5 app/assets/lookbook/js/components/clipboard.js
lookbook-1.5.4 app/assets/lookbook/js/components/clipboard.js
lookbook-2.0.0.rc.2 assets/js/components/clipboard.js