Sha256: 7b349ecc9f25c253f496bb2cb8921941390be2220ea8e0afd3f4bec95cd3eb88

Contents?: true

Size: 1 KB

Versions: 10

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.innerText.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

10 entries across 10 versions & 1 rubygems

Version Path
lookbook-1.0.0.rc.1 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.8 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.7 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.6 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.5 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.4 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.3 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.2 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.1 app/assets/lookbook/js/components/clipboard.js
lookbook-1.0.0.beta.0 app/assets/lookbook/js/components/clipboard.js