This commit is contained in:
tresabhi committed 2026-09-23 16:51:09 -05:00
1 parent 19556b5fc9
commit 444705347f
13 files changed
+49 -56

No files matched your search

@@ -1,4 +1,4 @@
import { TankClass } from "@blitzkit/core";
import { TankClass } from "@blitzkit/protos";
import type { ComponentProps, ReactNode } from "react";
import { ClassHeavy } from "./components/ClassHeavy";
import { ClassLight } from "./components/ClassLight";
@@ -1,14 +1,7 @@
import {
alias,
GunDefinition,
ShellType,
TANK_CLASSES,
TANK_TYPES,
TankType,
TIER_ROMAN_NUMERALS,
} from "@blitzkit/core";
import { alias, TIER_ROMAN_NUMERALS } from "@blitzkit/core";
import { literals } from "@blitzkit/i18n";
import locales from "@blitzkit/i18n/locales.json";
import { ShellType, TankType, type GunDefinition } from "@blitzkit/protos";
import {
LockClosedIcon,
LockOpen2Icon,
@@ -1,6 +1,6 @@
import type { Consumable } from "@blitzkit/core";
import { TrashIcon } from "@radix-ui/react-icons";
import { useCompatibility } from "../../hooks/useCompatibility";
import { useTankCompatibility } from "../../hooks/useTankCompatibility";
import { useConsumables } from "../../hooks/useConsumables";
import { useProtagonist } from "../../hooks/useProtagonist";
import { useProtagonistGun } from "../../hooks/useProtagonistGun";
@@ -122,7 +122,7 @@ function Consumables({ characteristics }: ConsumablesProps) {
const consumables = useConsumables();
const tank = useProtagonist();
const gun = useProtagonistGun();
const isCompatible = useCompatibility(tank, gun);
const isCompatible = useTankCompatibility(tank, gun);
return (
<div className={styles.section}>
@@ -1,7 +1,7 @@
---
import { ArrowLeftIcon } from "@radix-ui/react-icons";
import { api } from "../api/dynamic";
import type { Tool } from "../constants/tools";
import { getStrings } from "../core/i18n/getStrings";
import { Logo } from "../icons/Logo";
import { Back } from "./Back";
import { Flex } from "./Flex";
@@ -14,9 +14,8 @@ interface Props {
}
const { tool, locale } = Astro.props;
const strings = getStrings(locale);
const toolStrings =
strings.website.tools[tool.id as keyof typeof strings.website.tools];
const strings = await api.strings(locale);
const toolStrings = strings.tools[tool.id as keyof typeof strings.tools];
---
<style>
@@ -1,7 +1,7 @@
import type { TankDefinition } from "@blitzkit/core";
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
import type { TankDefinition } from "@blitzkit/protos";
import { times } from "lodash-es";
import { api } from "../../api/dynamic";
import { isTankCompatible } from "../../hooks/useTankCompatibility";
import type { TankFilters } from "../../stores/tankFilters";
const SHELLS = times(3, (index) => index);
@@ -51,10 +51,11 @@ export async function filterTank(
filters.consumables.every((consumable) =>
tank.turrets.some((turret) =>
turret.guns.some((gun) =>
checkConsumableProvisionInclusivity(
consumableDefinitions.consumables[consumable],
isTankCompatible(
tank,
gun,
consumableDefinitions.consumables[consumable].include,
consumableDefinitions.consumables[consumable].exclude,
),
),
),
@@ -63,10 +64,11 @@ export async function filterTank(
filters.provisions.every((provision) =>
tank.turrets.some((turret) =>
turret.guns.some((gun) =>
checkConsumableProvisionInclusivity(
provisionDefinitions.provisions[provision],
isTankCompatible(
tank,
gun,
provisionDefinitions.provisions[provision].include,
provisionDefinitions.provisions[provision].exclude,
),
),
),
@@ -1,20 +1,20 @@
import {
ConsumableTankCategoryFilterCategory,
type GunDefinition,
type TankDefinition,
type TankInclusivityFilter,
} from "@blitzkit/core";
GunDefinition,
TankDefinition,
TankInclusivityFilter,
} from "@blitzkit/protos";
export function useCompatibility(tank: TankDefinition, gun: GunDefinition) {
export function useTankCompatibility(tank: TankDefinition, gun: GunDefinition) {
return function (
include?: TankInclusivityFilter[],
exclude?: TankInclusivityFilter[],
) {
return tankCompatibility(tank, gun, include, exclude);
return isTankCompatible(tank, gun, include, exclude);
};
}
function tankCompatibility(
export function isTankCompatible(
tank: TankDefinition,
gun: GunDefinition,
include?: TankInclusivityFilter[],