diff --git a/src/js/components/branch.jsx b/src/js/components/branch.jsx index 5608af2..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 }) => { +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 c99f37f..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 }) => { +const File = ({ name, href, hasComments }) => { const className = fileIcons.getClassWithColor(name) return (
- {name} + {name} {hasComments ? ' 💬' : ''}
) } diff --git a/src/js/lib.js b/src/js/lib.js index 9993dff..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,12 +45,13 @@ export const createFileTree = () => { list: [] } - files.forEach(({ parts, href }) => { + 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 } + 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)