diff --git a/packages/website-ue/src/api/server.ts b/packages/website-ue/src/api/server.ts index cd888a95b..7fdbd8ae7 100644 --- a/packages/website-ue/src/api/server.ts +++ b/packages/website-ue/src/api/server.ts @@ -232,15 +232,15 @@ export class ServerAPI extends AbstractAPI { const equipment = Equipment.create(); for (const item of this.metadata.group("EquipmentPresetEntity")) { - equipment.presets[item.name] = item.EquipmentPreset(); + equipment.presets[item.id] = item.EquipmentPreset(); } for (const item of this.metadata.group("EquipmentPricePresetEntity")) { - equipment.prices[item.name] = item.EquipmentPricePreset(); + equipment.prices[item.id] = item.EquipmentPricePreset(); } for (const item of this.metadata.group("EquipmentEntity")) { - equipment.equipments[item.name] = item.BlitzStaticEquipment(); + equipment.equipments[item.id] = item.BlitzStaticEquipment(); } return equipment; diff --git a/packages/website-ue/src/components/Button/index.module.css b/packages/website-ue/src/components/Button/index.module.css index cb37faff6..a2d3e1d1a 100644 --- a/packages/website-ue/src/components/Button/index.module.css +++ b/packages/website-ue/src/components/Button/index.module.css @@ -16,7 +16,8 @@ cursor: pointer; - svg { + svg, + img { width: 1em; height: 1em; } diff --git a/packages/website-ue/src/components/IconButton/index.module.css b/packages/website-ue/src/components/IconButton/index.module.css index 8819c175c..62f5d428f 100644 --- a/packages/website-ue/src/components/IconButton/index.module.css +++ b/packages/website-ue/src/components/IconButton/index.module.css @@ -3,5 +3,5 @@ aspect-ratio: 1 / 1; - font-size: var(--font-size-regular); + font-size: var(--font-size-major); } diff --git a/packages/website-ue/src/components/TankopediaLoadout/index.module.css b/packages/website-ue/src/components/TankopediaLoadout/index.module.css index c967309b5..1cd75f97c 100644 --- a/packages/website-ue/src/components/TankopediaLoadout/index.module.css +++ b/packages/website-ue/src/components/TankopediaLoadout/index.module.css @@ -9,6 +9,38 @@ gap: var(--space-3); } + .equipment { + display: flex; + flex-direction: column; + gap: var(--space-3); + + .row { + display: flex; + gap: var(--space-3); + + .slots { + display: flex; + + .slot { + aspect-ratio: 1 / 1; + padding: var(--space-3); + + font-size: var(--space-5); + + &:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + } + } + } + } + .lines { display: flex; flex-direction: column; diff --git a/packages/website-ue/src/components/TankopediaLoadout/index.tsx b/packages/website-ue/src/components/TankopediaLoadout/index.tsx index 981fc09ef..18cbb1847 100644 --- a/packages/website-ue/src/components/TankopediaLoadout/index.tsx +++ b/packages/website-ue/src/components/TankopediaLoadout/index.tsx @@ -4,12 +4,15 @@ import type { StandardPrice } from "@protos/blitz_static_standard_price"; import type { UpgradeLine } from "@protos/blitz_static_tank_upgrade_line"; import type { StageParameters } from "@protos/blitz_static_tank_upgrade_single_stage"; import { DoubleArrowDownIcon, DoubleArrowUpIcon } from "@radix-ui/react-icons"; +import { chunk } from "lodash-es"; import { useMemo } from "react"; +import { equipmentColumns } from "../../config/equipment"; +import { catImages } from "../../config/images"; import { alternativeLines, isAlternativeLine, originalLineName, -} from "../../config/alternativeLines"; +} from "../../config/modules"; import { useEquipment } from "../../hooks/useEquipment"; import { useProtagonist } from "../../hooks/useProtagonist"; import { useStrings } from "../../hooks/useStrings"; @@ -39,12 +42,41 @@ function Equipment() { tank.tank!.equipment_preset_catalog_id, tank.tank!.equipment_price_preset_catalog_id, ); + const equipmentState = Tankopedia.use((state) => state.protagonist.equipment); return (