summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/code_navigation/utils/index.js
blob: 2dee0de6501eaecd7b04e22f36ab1f1bbb0ea3ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
export const cachedData = new Map();

export const getCurrentHoverElement = () => cachedData.get('current');
export const setCurrentHoverElement = el => cachedData.set('current', el);

export const addInteractionClass = d => {
  let charCount = 0;
  const line = document.getElementById(`LC${d.start_line + 1}`);
  const el = [...line.childNodes].find(({ textContent }) => {
    if (charCount === d.start_char) return true;
    charCount += textContent.length;
    return false;
  });

  if (el) {
    el.setAttribute('data-char-index', d.start_char);
    el.setAttribute('data-line-index', d.start_line);
    el.classList.add('cursor-pointer', 'code-navigation', 'js-code-navigation');
  }
};