import deselectCurrent from 'toggle-selection';

function copy(text) {
  let reselectPrevious; let range; let selection; let mark; let success = false;
  try {
    reselectPrevious = deselectCurrent();

    range = document.createRange();
    selection = document.getSelection();

    // 'a' is for 'copy a link to seafile markdown editor'
    mark = document.createElement('a');
    mark.textContent = text;

    document.body.appendChild(mark);

    range.selectNode(mark);
    selection.addRange(range);

    const successful = document.execCommand('copy');
    if (!successful) {
      // console.log('copy command was unsuccessful');
    }
    success = true;
  } catch (err) {
    // console.error('unable to copy using execCommand');
  } finally {
    if (selection) {
      if (typeof selection.removeRange == 'function') {
        selection.removeRange(range);
      } else {
        selection.removeAllRanges();
      }
    }

    if (mark) {
      document.body.removeChild(mark);
    }
    reselectPrevious();
  }

  return success;
}

export default copy;
