diff --git a/src/app/tools/compare/page.tsx b/src/app/tools/compare/page.tsx index ce26b6f8a..cda0ab4d9 100644 --- a/src/app/tools/compare/page.tsx +++ b/src/app/tools/compare/page.tsx @@ -69,28 +69,65 @@ export default function Page() { function Row({ value, - decimals, name, + display, + deltaType = 'higherIsBetter', }: { name: string; - value: (member: Awaited>) => number; - decimals?: number; + value: + | keyof Awaited> + | (( + member: Awaited>, + ) => number | undefined); + display: ( + member: Awaited>, + ) => number | string; + deltaType?: 'higherIsBetter' | 'lowerIsBetter'; }) { - const values = stats.map(value); + const values = stats.map((stat) => + typeof value === 'function' ? value(stat) : (stat[value] as number), + ); return ( - {name} + + + {name} + + {values.map((value, index) => ( - - values[0] ? 'green' : 'red' - } + + - {decimals === undefined ? value : value.toFixed(decimals)} - + values[0] : value < values[0]) + ? 'green' + : 'red' + } + > + {display(stats[index])} + + ))} @@ -179,7 +216,22 @@ export default function Page() { - stats.dpm} decimals={0} /> + Math.round(stats.dpm).toLocaleString()} + /> + stats.shellReload} + display={(stats) => + stats.shellReload?.toFixed(2) ?? + stats + .shellReloads!.map((reload) => reload.toFixed(2)) + .join(', ') + } + />