fix: stale compare indices

This commit is contained in:
TrèsAbhi committed 2026-03-23 22:07:20 -05:00
1 parent a2abfa7f85
commit 22faa6d294
2 files changed
+17 -18

No files matched your search

@@ -105,13 +105,13 @@ export function CompareTable({ stats }: CompareTableProps) {
crewSkills[skill] === 0 crewSkills[skill] === 0
? Var("gray-11") ? Var("gray-11")
: permanentSkills.includes(skill) : permanentSkills.includes(skill)
? Var("crimson-11") ? Var("crimson-11")
: Var("amber-11"), : Var("amber-11"),
}} }}
/> />
))} ))}
</Flex> </Flex>
) ),
)} )}
</Flex> </Flex>
</Button> </Button>
@@ -173,19 +173,19 @@ export function CompareTable({ stats }: CompareTableProps) {
consumables, consumables,
camouflage, camouflage,
}, },
index index,
) => { ) => {
const equipmentPreset = const equipmentPreset =
equipmentDefinitions.presets[tank.equipment_preset]; equipmentDefinitions.presets[tank.equipment_preset];
const provisionsList = availableProvisions( const provisionsList = availableProvisions(
tank, tank,
gun, gun,
provisionDefinitions provisionDefinitions,
); );
const consumablesList = Object.values( const consumablesList = Object.values(
consumableDefinitions.consumables consumableDefinitions.consumables,
).filter((consumable) => ).filter((consumable) =>
checkConsumableProvisionInclusivity(consumable, tank, gun) checkConsumableProvisionInclusivity(consumable, tank, gun),
); );
return ( return (
@@ -294,11 +294,11 @@ export function CompareTable({ stats }: CompareTableProps) {
<img <img
alt={unwrap( alt={unwrap(
provisionDefinitions.provisions[provision] provisionDefinitions.provisions[provision]
.name .name,
)} )}
key={provision} key={provision}
src={asset( src={asset(
`/icons/provisions/${provision}.webp` `/icons/provisions/${provision}.webp`,
)} )}
style={{ style={{
left: "50%", left: "50%",
@@ -335,7 +335,7 @@ export function CompareTable({ stats }: CompareTableProps) {
<Popover.Content> <Popover.Content>
<ProvisionsManager <ProvisionsManager
provisions={provisionsList.map( provisions={provisionsList.map(
(provision) => provision.id (provision) => provision.id,
)} )}
selected={provisions} selected={provisions}
disabled={tank.max_provisions === provisions.length} disabled={tank.max_provisions === provisions.length}
@@ -452,7 +452,7 @@ export function CompareTable({ stats }: CompareTableProps) {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
draft.members[index].equipmentMatrix = times( draft.members[index].equipmentMatrix = times(
3, 3,
() => times(3, () => 0) () => times(3, () => 0),
) as EquipmentMatrix; ) as EquipmentMatrix;
draft.sorting = undefined; draft.sorting = undefined;
}); });
@@ -501,11 +501,11 @@ export function CompareTable({ stats }: CompareTableProps) {
alt={unwrap( alt={unwrap(
consumableDefinitions.consumables[ consumableDefinitions.consumables[
consumable consumable
].name ].name,
)} )}
key={consumable} key={consumable}
src={asset( src={asset(
`/icons/consumables/${consumable}.webp` `/icons/consumables/${consumable}.webp`,
)} )}
style={{ style={{
left: "50%", left: "50%",
@@ -610,7 +610,7 @@ export function CompareTable({ stats }: CompareTableProps) {
</Flex> </Flex>
</Table.Cell> </Table.Cell>
); );
} },
)} )}
</Table.Row> </Table.Row>
</Table.Body> </Table.Body>
@@ -55,7 +55,7 @@ export function TankCard({ index, tank }: TankCardProps) {
}; };
}); });
const closest = distances.reduce((a, b) => const closest = distances.reduce((a, b) =>
a.distance < b.distance ? a : b a.distance < b.distance ? a : b,
); );
dropIndex = closest.index; dropIndex = closest.index;
@@ -85,8 +85,8 @@ export function TankCard({ index, tank }: TankCardProps) {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
const fromIndex = index; const fromIndex = index;
const toIndex = dropIndex > index ? dropIndex - 1 : dropIndex; const toIndex = dropIndex > index ? dropIndex - 1 : dropIndex;
const member = draft.members[fromIndex]; const member = draft.members[fromIndex];
draft.members.splice(fromIndex, 1); draft.members.splice(fromIndex, 1);
draft.members.splice(toIndex, 0, member); draft.members.splice(toIndex, 0, member);
}); });
@@ -99,7 +99,7 @@ export function TankCard({ index, tank }: TankCardProps) {
return () => { return () => {
draggable.current?.removeEventListener("pointerdown", handlePointerDown); draggable.current?.removeEventListener("pointerdown", handlePointerDown);
}; };
}, []); }, [index]);
return ( return (
<StickyColumnHeaderCell width="0"> <StickyColumnHeaderCell width="0">
@@ -141,7 +141,6 @@ export function TankCard({ index, tank }: TankCardProps) {
</Text> </Text>
</Flex> </Flex>
</Flex> </Flex>
<InsertionMarker index={index + 1} /> <InsertionMarker index={index + 1} />
</StickyColumnHeaderCell> </StickyColumnHeaderCell>
); );