diff --git a/src/js/components/branch.jsx b/src/js/components/branch.jsx index 700aaef..62b7c67 100644 --- a/src/js/components/branch.jsx +++ b/src/js/components/branch.jsx @@ -2,9 +2,9 @@ import React from 'react' import TreeView from 'react-treeview' import File from './file' -const Branch = ({ nodeLabel, list, href, has_comments }) => { +const Branch = ({ nodeLabel, list, href, hasComments }) => { if (href) { - return + return } return ( diff --git a/src/js/components/file.jsx b/src/js/components/file.jsx index a518620..02cbdde 100644 --- a/src/js/components/file.jsx +++ b/src/js/components/file.jsx @@ -1,12 +1,12 @@ import React from 'react' import fileIcons from 'file-icons-js' -const File = ({ name, href, has_comments }) => { +const File = ({ name, href, hasComments }) => { const className = fileIcons.getClassWithColor(name) return (
- {name}{has_comments ? ' 💬' : ''} + {name} {hasComments ? ' 💬' : ''}
) } diff --git a/src/js/lib.js b/src/js/lib.js index 1dfe282..58178d1 100644 --- a/src/js/lib.js +++ b/src/js/lib.js @@ -25,6 +25,15 @@ const sorter = (a, b) => { } } +const hasCommentsForFileIndex = (fileIndex) => { + const diffTable = document.getElementById(`diff-${fileIndex}`) + if (!diffTable) { + return 0 + } + + return diffTable.querySelectorAll('.inline-comments').length +} + export const createFileTree = () => { const fileInfo = [...document.querySelectorAll('.file-info > a')] const files = fileInfo.map(({ title, href }) => { @@ -36,13 +45,13 @@ export const createFileTree = () => { list: [] } - files.forEach(({ parts, href }, index) => { - let has_comments = !!document.getElementsByClassName('diff-table')[index].querySelectorAll('.inline-comments').length; + files.forEach(({ parts, href }, fileIndex) => { let location = tree parts.forEach((part, index) => { let node = location.list.find(node => node.nodeLabel === part) if (!node) { - node = { nodeLabel: part, list: [], href: (index === parts.length - 1) ? href : null, has_comments } + const hasComments = (hasCommentsForFileIndex(fileIndex) > 0) + node = { nodeLabel: part, list: [], href: (index === parts.length - 1) ? href : null, hasComments } location.list.push(node) } location.list = location.list.sort(sorter)