// by github.com/rzen // attach to code blocks, copy to clipboard on click window.addEventListener('load', function () {

// TODO: move to a js module
let showSnackbar = text => {
        let sbEl = document.getElementById("snackbar");

        sbEl.className = 'show';
        sbEl.innerText = text;
        setTimeout(_ => sbEl.className = sbEl.className.replace('show', ''), 3000);
}

let getCodeEl = el => el.querySelector('.rouge-code pre');

let makeClipboardCopyFn = el => ev => {
        navigator.clipboard.writeText((getCodeEl(el) || el).innerText)
                .finally(_ => showSnackbar('Copied to clipboard!'));
}

let configCodeBlock = (el) => {
        if (!getCodeEl(el)) return;  // skip inline code (TODO: should we?)
        el.title = 'Click to copy';
        el.style.cursor = 'pointer';
        el.addEventListener('click', makeClipboardCopyFn(el));
}

document.querySelectorAll('.highlighter-rouge').forEach(el => configCodeBlock(el));

});