mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
fix: a few type issues
This commit is contained in:
1 parent
a1e6643dc0
commit
9e89198cd5
5 files changed
+77
-39
No files matched your search
Vendored
+2
@@ -6,6 +6,8 @@
|
||||
"blitzstars",
|
||||
"cleandist",
|
||||
"customperiod",
|
||||
"deburr",
|
||||
"diacriticless",
|
||||
"Everytime",
|
||||
"fullstats",
|
||||
"fuzzysort",
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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
@@ -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,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user