diff --git a/src/components/Breakdown/components/Row.tsx b/src/components/Breakdown/components/Row.tsx
index c92f28ced..c99ed1e91 100644
--- a/src/components/Breakdown/components/Row.tsx
+++ b/src/components/Breakdown/components/Row.tsx
@@ -1,6 +1,7 @@
import getWN8Percentile from '../../../core/blitz/getWN8Percentile';
+import { TankType } from '../../../core/blitz/tankopedia';
import { theme } from '../../../stitches.config';
-import { RowDiscriminator } from './RowDiscriminator';
+import { TREE_TYPE_ICONS, TreeTypeEnum } from '../../Tanks';
import { RowStat } from './RowStat';
export interface RowProps {
@@ -13,14 +14,14 @@ export interface RowProps {
careerDamage: number;
battles: number;
careerBattles: number;
- icon?: string;
minimized: boolean;
- isListing: boolean;
- naked?: boolean;
+ isTank: boolean;
+ treeType?: TreeTypeEnum;
+ tankType?: TankType;
}
export function Row({
- isListing,
+ isTank,
minimized,
name,
winrate,
@@ -31,45 +32,85 @@ export function Row({
careerDamage,
battles,
careerBattles,
- icon,
- naked,
+ treeType,
+ tankType,
}: RowProps) {
return (
-
+
+ {isTank && treeType !== undefined && tankType !== undefined && (
+

+ )}
+
+ {name}
+
+
-
-
-
-
+
+
+
+
+
+
);
}
diff --git a/src/components/Breakdown/components/RowDiscriminator.tsx b/src/components/Breakdown/components/RowDiscriminator.tsx
deleted file mode 100644
index 04bc4c2d3..000000000
--- a/src/components/Breakdown/components/RowDiscriminator.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { theme } from '../../../stitches.config';
-
-export interface RowDiscriminatorProps {
- name: string;
- icon?: string;
- minimized: boolean;
-}
-
-export function RowDiscriminator({
- name,
- icon,
- minimized,
-}: RowDiscriminatorProps) {
- return (
-
- {!minimized && icon && (
-

- )}
-
-
- {name}
-
-
- );
-}
diff --git a/src/components/Breakdown/components/RowStat.tsx b/src/components/Breakdown/components/RowStat.tsx
index cf58e3a14..43ce8e133 100644
--- a/src/components/Breakdown/components/RowStat.tsx
+++ b/src/components/Breakdown/components/RowStat.tsx
@@ -53,6 +53,7 @@ export function RowStat({
diff --git a/src/components/Breakdown/index.ts b/src/components/Breakdown/index.ts
index 8bb31e1ff..c2782754b 100644
--- a/src/components/Breakdown/index.ts
+++ b/src/components/Breakdown/index.ts
@@ -1,4 +1,4 @@
export * from './components/Root';
export * from './components/Row';
-export * from './components/RowDiscriminator';
export * from './components/RowStat';
+
diff --git a/src/components/Tanks/components/Item.tsx b/src/components/Tanks/components/Item.tsx
index 9d9b52ef7..4aa2e77ea 100644
--- a/src/components/Tanks/components/Item.tsx
+++ b/src/components/Tanks/components/Item.tsx
@@ -2,6 +2,7 @@ import {
TANK_ICONS,
TANK_ICONS_COLLECTOR,
TANK_ICONS_PREMIUM,
+ TankType,
} from '../../../core/blitz/tankopedia';
import { theme } from '../../../stitches.config';
@@ -15,7 +16,7 @@ export type TreeTypeString = 'techtree' | 'premium' | 'collector';
export interface ItemProps {
image?: string;
- tankType?: string;
+ tankType?: TankType;
name: string;
treeType: TreeTypeEnum;
}
@@ -26,7 +27,7 @@ const TREE_TYPE_COLOR = {
[TreeTypeEnum.Collector]: '_blue',
} as const;
-const TREE_TYPE_ICONS = {
+export const TREE_TYPE_ICONS = {
[TreeTypeEnum.TechTree]: TANK_ICONS,
[TreeTypeEnum.Premium]: TANK_ICONS_PREMIUM,
[TreeTypeEnum.Collector]: TANK_ICONS_COLLECTOR,
diff --git a/src/core/blitz/tankopedia.ts b/src/core/blitz/tankopedia.ts
index 1a51edbe8..ffb2cf6c8 100644
--- a/src/core/blitz/tankopedia.ts
+++ b/src/core/blitz/tankopedia.ts
@@ -1,6 +1,8 @@
import { secrets } from '../node/secrets';
import getWargamingResponse from './getWargamingResponse';
+export type TankType = 'AT-SPG' | 'lightTank' | 'mediumTank' | 'heavyTank';
+
export interface TankopediaEntry {
name: string;
nation: string;
@@ -10,7 +12,7 @@ export interface TankopediaEntry {
cost: { price_credit: number; price_gold: number };
images: { preview: string; normal: string };
tank_id: number;
- type: string;
+ type: TankType;
description: string;
}
@@ -51,21 +53,21 @@ export const tankopediaInfo = getWargamingResponse(
);
console.log('Cached tankopedia info');
-export const TANK_ICONS: Record = {
+export const TANK_ICONS: Record = {
'AT-SPG': 'https://i.imgur.com/BIHSEH0.png',
lightTank: 'https://i.imgur.com/CSNha5V.png',
mediumTank: 'https://i.imgur.com/wvf3ltm.png',
heavyTank: 'https://i.imgur.com/ECeqlZa.png',
};
-export const TANK_ICONS_PREMIUM: Record = {
+export const TANK_ICONS_PREMIUM: Record = {
'AT-SPG': 'https://i.imgur.com/TCu3EdR.png',
lightTank: 'https://i.imgur.com/zdkpTRb.png',
mediumTank: 'https://i.imgur.com/3z7eHX6.png',
heavyTank: 'https://i.imgur.com/P3vbmyA.png',
};
-export const TANK_ICONS_COLLECTOR: Record = {
+export const TANK_ICONS_COLLECTOR: Record = {
'AT-SPG': 'https://i.imgur.com/WTjeirB.png',
lightTank: 'https://i.imgur.com/EwhtKkU.png',
mediumTank: 'https://i.imgur.com/u8YDMBh.png',
diff --git a/src/renderers/today.tsx b/src/renderers/today.tsx
index e231cb280..d378cbcb2 100644
--- a/src/renderers/today.tsx
+++ b/src/renderers/today.tsx
@@ -5,6 +5,7 @@ import TitleBar from '../components/TitleBar';
import Wrapper from '../components/Wrapper';
import calculateWN8 from '../core/blitz/calculateWN8';
import getTankStats from '../core/blitz/getTankStats';
+import getTreeType from '../core/blitz/getTreeType';
import getWargamingResponse from '../core/blitz/getWargamingResponse';
import resolveTankName from '../core/blitz/resolveTankName';
import sumStats from '../core/blitz/sumStats';
@@ -117,28 +118,27 @@ export default async function today(
// this code unreadable on god will forget tomorrow no cap
...(order.length === 0 ? [] : [0]),
...(isFinite(limit) ? order.slice(0, limit) : order),
- ].map(async (tankId, index) => {
- const tankStats = diffed[tankId];
- const career = careerStats[tankId];
+ ].map(async (id, index) => {
+ const tankStats = diffed[id];
+ const career = careerStats[id];
+ const tankopediaEntry = (await tankopedia)[id];
return (
4}
- key={tankId}
- name={tankId === 0 ? 'Total' : await resolveTankName(tankId)}
+ key={id}
+ name={id === 0 ? 'Total' : await resolveTankName(id)}
winrate={tankStats.wins / tankStats.battles}
careerWinrate={career.wins / career.battles}
- WN8={isNaN(todayWN8s[tankId]) ? undefined : todayWN8s[tankId]}
- careerWN8={isNaN(careerWN8s[tankId]) ? undefined : careerWN8s[tankId]}
+ WN8={isNaN(todayWN8s[id]) ? undefined : todayWN8s[id]}
+ careerWN8={isNaN(careerWN8s[id]) ? undefined : careerWN8s[id]}
damage={tankStats.damage_dealt / tankStats.battles}
careerDamage={career.damage_dealt / career.battles}
battles={tankStats.battles}
careerBattles={career.battles}
- icon={
- tankId === 0 ? undefined : (await tankopedia)[tankId]?.images.normal
- }
/>
);
}),
@@ -146,7 +146,7 @@ export default async function today(
return naked ? (
- {rows.slice(1)}
+ {rows}
) : (