From 184ca522dd746903a17660bccb7a4ff194691edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 6 Apr 2024 10:17:48 -0500 Subject: [PATCH] feat: proper keying --- src/app/tools/compare/components/TankControl.tsx | 14 ++++++++------ src/app/tools/compare/page.tsx | 14 +++++++------- src/core/blitzkrieg/tankToCompareMember.ts | 2 ++ src/stores/compare.ts | 6 +++++- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/app/tools/compare/components/TankControl.tsx b/src/app/tools/compare/components/TankControl.tsx index 1afd3444b..897371939 100644 --- a/src/app/tools/compare/components/TankControl.tsx +++ b/src/app/tools/compare/components/TankControl.tsx @@ -5,9 +5,10 @@ import { TrashIcon, } from '@radix-ui/react-icons'; import { Dialog, Flex, IconButton } from '@radix-ui/themes'; -import { useState } from 'react'; +import { use, useState } from 'react'; +import { skillDefinitions } from '../../../../core/blitzkrieg/skillDefinitions'; import { TankDefinition } from '../../../../core/blitzkrieg/tankDefinitions'; -import { tankToDuelMember } from '../../../../core/blitzkrieg/tankToDuelMember'; +import { tankToCompareMember } from '../../../../core/blitzkrieg/tankToCompareMember'; import { CompareMember, mutateCompareTemporary, @@ -21,6 +22,7 @@ interface TankControlProps { } export function TankControl({ index, tank, members }: TankControlProps) { + const awaitedSkillDefinitions = use(skillDefinitions); const [switchTankDialogOpen, setSwitchTankDialogOpen] = useState(false); return ( @@ -71,10 +73,10 @@ export function TankControl({ index, tank, members }: TankControlProps) { compact onSelect={(tank) => { mutateCompareTemporary((draft) => { - draft.members[index] = { - ...tankToDuelMember(tank), - crewSkills: {}, - }; + draft.members[index] = tankToCompareMember( + tank, + awaitedSkillDefinitions, + ); }); setSwitchTankDialogOpen(false); }} diff --git a/src/app/tools/compare/page.tsx b/src/app/tools/compare/page.tsx index bd49bad88..56099e92c 100644 --- a/src/app/tools/compare/page.tsx +++ b/src/app/tools/compare/page.tsx @@ -234,8 +234,8 @@ export default function Page() { {children} - {members.map((_, index) => ( - + {members.map(({ key }) => ( + ))} @@ -310,9 +310,9 @@ export default function Page() { - {members.map(({ tank }, index) => { + {members.map(({ tank, key }, index) => { return ( - + - {members.map(({ equipmentMatrix, tank }, index) => { + {members.map(({ equipmentMatrix, tank, key }, index) => { const equipmentPreset = awaitedEquipmentDefinitions.presets[tank.equipment]; return ( - + ; } @@ -26,7 +27,10 @@ export const useComparePersistent = create()( subscribeWithSelector(() => ({ deltaMode: 'none', })), - { name: 'compare', merge: (a, b) => merge(b, a) }, + { + name: 'compare', + merge: (a, b) => merge(b, a), + }, ), );