sparkbox/local-events-project

View on GitHub
app/assets/javascripts/events-show.js

Summary

Maintainability
C
7 hrs
Test Coverage
function lampPostMain() {
  DOM.eventCards = select.all('.event-card');
  DOM.shareableLinks = select.all('.shareable-link');
  DOM.shareableLinks.forEach(setupShareableLink);

  function setupShareableLink(linkComponent) {
    var linkInput = select.child('.shareable-url-text-input').from(linkComponent);

    linkInput.addEventListener('click', function(e) {
      linkInput.select();
    });

    if(document.queryCommandSupported('copy')) {
      copyButton = document.createElement('button');
      copyButton.classList.add('button', 'card-button', 'copy-button');
      copyButton.setAttribute('title', 'Copy Link');
      copyButton.innerHTML = 'Copy Link to Clipboard';
      linkComponent.appendChild(copyButton);

      copyButton.addEventListener('click', function(e) {
        linkInput.select();
        document.execCommand('copy');
      });
    }
  }
}

document.addEventListener('DOMContentLoaded', lampPostMain);