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