diff --git a/packages/server/src/ui/routes/build-view/audit-detail/audit-detail.jsx b/packages/server/src/ui/routes/build-view/audit-detail/audit-detail.jsx index 3693c7520..57a940414 100644 --- a/packages/server/src/ui/routes/build-view/audit-detail/audit-detail.jsx +++ b/packages/server/src/ui/routes/build-view/audit-detail/audit-detail.jsx @@ -44,7 +44,9 @@ const Details = props => { if (type === 'table' || type === 'opportunity') { tableDetails = ; - if (pair.baseAudit) itemDiff = ; + if (pair.baseAudit) { + itemDiff = ; + } } const numericDiff = pair.diffs.find(diff => diff.type === 'numericValue'); diff --git a/packages/server/src/ui/routes/build-view/audit-list/audit-diff.jsx b/packages/server/src/ui/routes/build-view/audit-list/audit-diff.jsx index d0abe4dc8..25493cf78 100644 --- a/packages/server/src/ui/routes/build-view/audit-list/audit-diff.jsx +++ b/packages/server/src/ui/routes/build-view/audit-list/audit-diff.jsx @@ -10,6 +10,36 @@ import {ScoreWord} from '../../../components/score-icon'; import {NumericDiff} from './numeric-diff'; import {getDiffLabel, getRowLabelForIndex} from '@lhci/utils/src/audit-diff-finder'; +/** @type {Record} */ +const ICONS_BY_AUDIT_ID = { + 'font-display': 'font_download', + 'uses-rel-preconnect': 'language', + + 'user-timings': 'timer', + 'bootup-time': 'speed', + 'mainthread-work-breakdown': 'speed', + + 'third-party-summary': 'language', + + deprecations: 'error', + 'errors-in-console': 'error', + 'font-sizes': 'format_size', +}; + +/** @param {{audit: LH.AuditResult, groupId: string}} props */ +const IconForAuditItems = props => { + const auditId = props.audit.id || ''; + const groupId = props.groupId || ''; + + let icon = ''; + if (groupId.includes('opportunities')) icon = 'cloud_download'; + if (groupId.includes('a11y')) icon = 'code'; + if (auditId.includes('image')) icon = 'photo'; + icon = ICONS_BY_AUDIT_ID[auditId] || icon || 'list_alt'; + + return {icon}; +}; + /** @param {{diff: LHCI.AuditDiff, audit: LH.AuditResult, baseAudit: LH.AuditResult}} props */ const ScoreDiff = props => { return ( @@ -72,9 +102,9 @@ function getUniqueBaseCompareIndexPairs(diffs) { ); } -/** @param {{diffs: Array, audit: LH.AuditResult, baseAudit: LH.AuditResult, showAsNarrow?: boolean}} props */ +/** @param {{diffs: Array, audit: LH.AuditResult, baseAudit: LH.AuditResult, groupId: string, showAsNarrow?: boolean}} props */ export const ItemDiff = props => { - const {diffs, baseAudit} = props; + const {diffs, baseAudit, groupId} = props; if (!baseAudit.details || !baseAudit.details.items) return null; const rowIndexes = getUniqueBaseCompareIndexPairs(diffs); @@ -88,7 +118,7 @@ export const ItemDiff = props => { const baseElements = (
- list +
{baseAudit.details.items.length}
@@ -107,7 +137,7 @@ export const ItemDiff = props => { {props.showAsNarrow ? : baseElements}
- list +
{regressionCount ? ( @@ -155,6 +185,7 @@ export const AuditDiff = props => { diffs={diffs} audit={audit} baseAudit={baseAudit} + groupId={group.id} showAsNarrow={props.showAsNarrow} /> );