fix: a few type issues

This commit is contained in:
TresAbhi committed 2023-09-23 23:30:14 +00:00
1 parent a1e6643dc0
commit 9e89198cd5
5 files changed
+77 -39

No files matched your search

+2
View File
@@ -6,6 +6,8 @@
"blitzstars",
"cleandist",
"customperiod",
"deburr",
"diacriticless",
"Everytime",
"fullstats",
"fuzzysort",
+5 -11
View File
@@ -4,18 +4,12 @@ import { theme } from '../../../stitches.config';
import { TREE_TYPE_ICONS, TreeTypeEnum } from '../../Tanks';
import { RowStat } from './RowStat';
type RowProps = (
| {
type: 'tank';
treeType?: TreeTypeEnum;
tankType?: TankType;
}
| {
type: 'summary';
}
) & {
interface RowProps {
type: 'tank' | 'summary';
title: string;
minimized?: boolean;
treeType?: TreeTypeEnum;
tankType?: TankType;
rows: {
title: string;
@@ -24,7 +18,7 @@ type RowProps = (
delta?: number;
percentile?: Percentile;
}[];
};
}
export function Row(props: RowProps) {
return (
+7 -8
View File
@@ -13,17 +13,16 @@ export type WargamingResponse<Data extends object> =
export default async function getWargamingResponse<Data extends object>(
url: string,
) {
let parsed: WargamingResponse<Data>;
const data = (await fetch(url).then((response) =>
response.json(),
)) as WargamingResponse<Data>;
const response = await fetch(url);
parsed = (await response.json()) as WargamingResponse<Data>;
if (parsed.status === 'ok') {
return parsed.data;
if (data.status === 'ok') {
return data.data;
} else {
throw throwError(
`Wargaming response error status:"${parsed.status}"`,
`Message: "${parsed.error.message}"\nURL: "${url}"`,
`Wargaming response error status:"${data.status}"`,
`Message: "${data.error.message}"\nURL: "${url}"`,
);
}
}
+52 -11
View File
@@ -2,9 +2,11 @@ import * as Breakdown from '../components/Breakdown';
import NoData, { NoDataType } from '../components/NoData';
import TitleBar from '../components/TitleBar';
import Wrapper from '../components/Wrapper';
import { WARGAMING_APPLICATION_ID } from '../constants/wargamingApplicationID';
import calculateWN8 from '../core/blitz/calculateWN8';
import getTankStats from '../core/blitz/getTankStats';
import getTreeType from '../core/blitz/getTreeType';
import getWN8Percentile from '../core/blitz/getWN8Percentile';
import getWargamingResponse from '../core/blitz/getWargamingResponse';
import resolveTankName from '../core/blitz/resolveTankName';
import sumStats from '../core/blitz/sumStats';
@@ -129,21 +131,60 @@ export default async function today(
const tankopediaEntry = (await tankopedia)[id];
return (
// <Breakdown.Row
// isTank={!showTotal || id !== 0}
// tankType={tankopediaEntry?.type}
// treeType={tankopediaEntry ? await getTreeType(id) : undefined}
// minimized={showTotal ? index > maximized : index + 1 > maximized}
// key={id}
// name={showTotal && id === 0 ? 'Total' : await resolveTankName(id)}
// winrate={tankStats.wins / tankStats.battles}
// careerWinrate={career.wins / career.battles}
// 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}
// />
<Breakdown.Row
isTank={!showTotal || id !== 0}
key={id}
type={!showTotal || id !== 0 ? 'tank' : 'summary'}
tankType={tankopediaEntry?.type}
treeType={tankopediaEntry ? await getTreeType(id) : undefined}
title={showTotal && id === 0 ? 'Total' : await resolveTankName(id)}
minimized={showTotal ? index > maximized : index + 1 > maximized}
key={id}
name={showTotal && id === 0 ? 'Total' : await resolveTankName(id)}
winrate={tankStats.wins / tankStats.battles}
careerWinrate={career.wins / career.battles}
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}
rows={[
{
title: 'Winrate',
current: `${(tankStats.wins / tankStats.battles).toFixed(2)}%`,
career: `${(career.wins / career.battles).toFixed(2)}%`,
delta:
tankStats.wins / tankStats.battles -
career.wins / career.battles,
},
{
title: 'WN8',
current: isNaN(todayWN8s[id]) ? undefined : todayWN8s[id],
career: isNaN(careerWN8s[id]) ? undefined : careerWN8s[id],
percentile: isNaN(todayWN8s[id])
? undefined
: getWN8Percentile(todayWN8s[id]),
},
{
title: 'Damage',
current: (tankStats.damage_dealt / tankStats.battles).toFixed(0),
career: (career.damage_dealt / career.battles).toFixed(0),
delta:
tankStats.damage_dealt / tankStats.battles -
career.damage_dealt / career.battles,
},
{
title: 'Battles',
current: tankStats.battles,
career: career.battles,
},
]}
/>
);
}),
+11 -9
View File
@@ -48,14 +48,16 @@ export interface ClanStats {
export interface AccountInfo {
[accountId: number]: {
clan: ClanStats;
all: AllStats;
frags: null;
account_id: number;
created_at: number;
updated_at: number;
private: null;
last_battle_time: number;
nickname: string;
statistics: {
all: AllStats;
clan: ClanStats;
frags: null | number;
};
};
account_id: number;
created_at: number;
updated_at: number;
private: null;
last_battle_time: number;
nickname: string;
}