rubygems/rubygems.org

View on GitHub
app/javascript/src/clipboard_buttons.js

Summary

Maintainability
A
0 mins
Test Coverage
import $ from "jquery";
import ClipboardJS from "clipboard";

$(function() {
  var clipboard = new ClipboardJS('.gem__code__icon');
  var copyTooltip = $('.gem__code__tooltip--copy');
  var copiedTooltip = $('.gem__code__tooltip--copied');
  var copyButtons = $('.gem__code__icon');

  function hideCopyShowCopiedTooltips(e) {
    copyTooltip.removeClass("clipboard-is-hover");
    copiedTooltip.insertAfter(e.trigger);
    copiedTooltip.addClass("clipboard-is-active");
  };

  clipboard.on('success', function(e) {
    hideCopyShowCopiedTooltips(e);
    e.clearSelection();
  });

  clipboard.on('error', function(e) {
    hideCopyShowCopiedTooltips(e);
    copiedTooltip.text("Ctrl-C to Copy");
  });

  copyButtons.hover(function() {
    copyTooltip.insertAfter(this);
    copyTooltip.addClass("clipboard-is-hover");
  });

  copyButtons.mouseout(function() {
    copyTooltip.removeClass("clipboard-is-hover");
  });

  copyButtons.mouseout(function() {
    copiedTooltip.removeClass("clipboard-is-active");
  });
});