diff options
Diffstat (limited to 'vanilla/node_modules/istanbul-reports/lib/html-spa/src/index.js')
| -rw-r--r-- | vanilla/node_modules/istanbul-reports/lib/html-spa/src/index.js | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/vanilla/node_modules/istanbul-reports/lib/html-spa/src/index.js b/vanilla/node_modules/istanbul-reports/lib/html-spa/src/index.js deleted file mode 100644 index c89c416..0000000 --- a/vanilla/node_modules/istanbul-reports/lib/html-spa/src/index.js +++ /dev/null @@ -1,160 +0,0 @@ -// The index file for the spa running on the summary page -const React = require('react'); -const ReactDOM = require('react-dom'); -const SummaryTableHeader = require('./summaryTableHeader'); -const SummaryTableLine = require('./summaryTableLine'); -const SummaryHeader = require('./summaryHeader'); -const getChildData = require('./getChildData'); -const FlattenToggle = require('./flattenToggle'); -const FilterToggle = require('./filterToggle'); -const FileBreadcrumbs = require('./fileBreadcrumbs'); -const { setLocation, decodeLocation } = require('./routing'); - -const { useState, useMemo, useEffect } = React; - -const sourceData = window.data; -const metricsToShow = {}; -for (let i = 0; i < window.metricsToShow.length; i++) { - metricsToShow[window.metricsToShow[i]] = true; -} - -let firstMount = true; - -function App() { - const routingDefaults = decodeLocation(); - - const [activeSort, setSort] = useState( - (routingDefaults && routingDefaults.activeSort) || { - sortKey: 'file', - order: 'desc' - } - ); - const [isFlat, setIsFlat] = useState( - (routingDefaults && routingDefaults.isFlat) || false - ); - const [activeFilters, setFilters] = useState( - (routingDefaults && routingDefaults.activeFilters) || { - low: true, - medium: true, - high: true - } - ); - const [expandedLines, setExpandedLines] = useState( - (routingDefaults && routingDefaults.expandedLines) || [] - ); - const [fileFilter, setFileFilter] = useState( - (routingDefaults && routingDefaults.fileFilter) || '' - ); - const childData = useMemo( - () => - getChildData( - sourceData, - metricsToShow, - activeSort, - isFlat, - activeFilters, - fileFilter - ), - [activeSort, isFlat, activeFilters, fileFilter] - ); - const overallMetrics = sourceData.metrics; - - useEffect(() => { - setLocation( - firstMount, - activeSort, - isFlat, - activeFilters, - fileFilter, - expandedLines - ); - firstMount = false; - }, [activeSort, isFlat, activeFilters, fileFilter, expandedLines]); - - useEffect(() => { - window.onpopstate = () => { - const routingState = decodeLocation(); - if (routingState) { - // make sure all the state is set before rendering to avoid url updates - // alternative is to merge all the states into one so it can be set in one go - // https://github.com/facebook/react/issues/14259 - ReactDOM.unstable_batchedUpdates(() => { - setFilters(routingState.activeFilters); - setSort(routingState.activeSort); - setIsFlat(routingState.isFlat); - setExpandedLines(routingState.expandedLines); - setFileFilter(routingState.fileFilter); - }); - } - }; - }, []); - - return ( - <div className="layout"> - <div className="layout__section"> - <SummaryHeader - metrics={overallMetrics} - metricsToShow={metricsToShow} - /> - </div> - <div className="layout__section"> - <div className="toolbar"> - <div className="toolbar__item"> - <FlattenToggle setIsFlat={setIsFlat} isFlat={isFlat} /> - </div> - <div className="toolbar__item"> - <FilterToggle - activeFilters={activeFilters} - setFilters={setFilters} - /> - </div> - </div> - </div> - <div className="layout__section"> - <h1> - <FileBreadcrumbs - fileFilter={fileFilter} - setFileFilter={setFileFilter} - /> - </h1> - </div> - <div className="layout__section layout__section--fill"> - <table className="coverage-summary"> - <SummaryTableHeader - onSort={newSort => { - setSort(newSort); - }} - activeSort={activeSort} - metricsToShow={metricsToShow} - /> - <tbody> - {childData.map(child => ( - <SummaryTableLine - {...child} - key={child.file} - metricsToShow={metricsToShow} - expandedLines={expandedLines} - setExpandedLines={setExpandedLines} - fileFilter={fileFilter} - setFileFilter={setFileFilter} - /> - ))} - </tbody> - </table> - </div> - <div className="layout__section center small quiet"> - Code coverage generated by{' '} - <a - href="https://istanbul.js.org/" - target="_blank" - rel="noopener noreferrer" - > - istanbul - </a>{' '} - at {window.generatedDatetime} - </div> - </div> - ); -} - -ReactDOM.render(<App />, document.getElementById('app')); |
