From a1f6bbdf1fae36919c9eecbca58e94219a869b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Tue, 16 Jan 2024 17:31:20 -0600 Subject: [PATCH] feat: equipment icons --- .../tankopedia/[id]/components/Configure.tsx | 30 ++++++++++++++++++- src/components/ModuleButton.tsx | 12 ++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/app/tools/tankopedia/[id]/components/Configure.tsx b/src/app/tools/tankopedia/[id]/components/Configure.tsx index bb3b33d7d..1f65e7ac4 100644 --- a/src/app/tools/tankopedia/[id]/components/Configure.tsx +++ b/src/app/tools/tankopedia/[id]/components/Configure.tsx @@ -1,7 +1,8 @@ import { Flex, Heading } from '@radix-ui/themes'; import { produce } from 'immer'; -import { Dispatch, SetStateAction } from 'react'; +import { Dispatch, SetStateAction, use } from 'react'; import { ModuleButton } from '../../../../../components/ModuleButton'; +import { equipmentDefinitions } from '../../../../../core/blitzkrieg/equipmentDefinitions'; import { Duel } from '../page'; interface ConfigureProps { @@ -10,6 +11,10 @@ interface ConfigureProps { } export function Configure({ duel, setDuel }: ConfigureProps) { + const awaitedEquipmentDefinitions = use(equipmentDefinitions); + const equipmentRows = + awaitedEquipmentDefinitions.presets[duel.protagonist.tank.equipment]; + return ( Configure @@ -85,6 +90,29 @@ export function Configure({ duel, setDuel }: ConfigureProps) { Equipment + + + {equipmentRows.map((equipmentRow) => ( + + {equipmentRow.map((equipment) => ( + + + + + ))} + + ))} + ); diff --git a/src/components/ModuleButton.tsx b/src/components/ModuleButton.tsx index 0014953c8..486e7aaeb 100644 --- a/src/components/ModuleButton.tsx +++ b/src/components/ModuleButton.tsx @@ -18,13 +18,17 @@ type ModuleButtonProps = Omit, 'type'> & { type: 'shell'; shell: string; } + | { + type: 'equipment'; + equipment: number; + } ); export function ModuleButton({ selected, style, - first = true, - last = true, + first = false, + last = false, rowChild, ...props }: ModuleButtonProps) { @@ -51,7 +55,9 @@ export function ModuleButton({ src={asset( props.type === 'module' ? `icons/modules/${props.module}.webp` - : `icons/shells/${props.shell}.webp`, + : props.type === 'shell' + ? `icons/shells/${props.shell}.webp` + : `icons/equipment/${props.equipment}.webp`, )} style={{ width: 32,