From 429049761f69eb9c24a7c485c790ab9c9948ac4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Tue, 4 Jun 2024 18:06:15 -0500 Subject: [PATCH] feat: edge plus button --- src/app/tools/compare/page.tsx | 1463 ++++++++++++++++---------------- 1 file changed, 744 insertions(+), 719 deletions(-) diff --git a/src/app/tools/compare/page.tsx b/src/app/tools/compare/page.tsx index 59780b070..30d002922 100644 --- a/src/app/tools/compare/page.tsx +++ b/src/app/tools/compare/page.tsx @@ -10,6 +10,7 @@ import { TrashIcon, } from '@radix-ui/react-icons'; import { + Box, Button, Callout, Dialog, @@ -618,799 +619,823 @@ export default function Page() { {members.length > 0 && ( - - - - - + + + + - - - - + + + + + - {members.map(({ tank, key }, index) => { - return ; - })} - - + {members.map(({ tank, key }, index) => { + return ; + })} + + - - - - + + - - - - - - - { - mutateCompareTemporary((draft) => { - draft.crewSkills = skills; - }); - }} - /> - - - - - - - - - - - {members.map( - ( - { - equipmentMatrix, - tank, - key, - provisions, - gun, - shell, - turret, - engine, - track, - consumables, - }, - index, - ) => { - const equipmentPreset = - awaitedEquipmentDefinitions.presets[tank.equipment]; - const provisionsList = availableProvisions( - tank, - gun, - awaitedProvisionDefinitions, - ); - const consumablesList = Object.values( - awaitedConsumableDefinitions, - ).filter((consumable) => - checkConsumableProvisionInclusivity( - consumable, - tank, - gun, - ), - ); - - return ( - - - - - - + ))} + + + - - { - mutateCompareTemporary((draft) => { - draft.members[index] = { - ...draft.members[index], - ...modules, - }; - }); - }} - /> + + { + mutateCompareTemporary((draft) => { + draft.crewSkills = skills; + }); + }} + /> - - + + + + + + - member.turret = member.tank.turrets[0]; - member.gun = member.turret.guns[0]; - member.shell = member.gun.shells[0]; - member.engine = member.tank.engines[0]; - member.track = member.tank.tracks[0]; - }); - }} - > - Stock - - - - - - - + return ( + + - - provision.id, - )} - selected={provisions} - disabled={ - tank.provisions === provisions.length - } - onChange={(provisions) => { + { mutateCompareTemporary((draft) => { - draft.members[index].provisions = - provisions; + draft.members[index] = { + ...draft.members[index], + ...modules, + }; }); }} /> - + + - - - - - - - { - mutateCompareTemporary((draft) => { - draft.members[index].equipmentMatrix = - matrix; - draft.sorting = undefined; - }); - }} - /> - - + + + + + + + provision.id, + )} + selected={provisions} + disabled={ + tank.provisions === provisions.length + } + onChange={(provisions) => { + mutateCompareTemporary((draft) => { + draft.members[index].provisions = + provisions; + }); + }} + /> + + + + + + + + + + + + + + { mutateCompareTemporary((draft) => { draft.members[index].equipmentMatrix = - times(3, () => - times(3, () => 0), - ) as EquipmentMatrix; + matrix; draft.sorting = undefined; }); }} - > - Clear - - - - - - - - - + - - + + - - { - mutateCompareTemporary((draft) => { - draft.members[index].consumables = - consumables; - }); - }} - disabled={ - tank.consumables === consumables.length - } - /> - - + + - - - - + - - {gun.shells.map((thisShell, shellIndex) => ( - + { + mutateCompareTemporary((draft) => { + draft.members[index].consumables = + consumables; + }); + }} + disabled={ + tank.consumables === consumables.length + } + /> + + + + + + + + + + {gun.shells.map((thisShell, shellIndex) => ( + { - mutateCompareTemporary((draft) => { - draft.members[index].shell = thisShell; - }); - }} - > - {thisShell.name} - - ))} + : 'gray' + } + variant="soft" + key={thisShell.id} + style={{ + borderTopLeftRadius: + shellIndex === 0 ? undefined : 0, + borderBottomLeftRadius: + shellIndex === 0 ? undefined : 0, + borderTopRightRadius: + shellIndex === gun.shells.length - 1 + ? undefined + : 0, + borderBottomRightRadius: + shellIndex === gun.shells.length - 1 + ? undefined + : 0, + marginLeft: shellIndex === 0 ? 0 : -1, + }} + onClick={() => { + mutateCompareTemporary((draft) => { + draft.members[index].shell = thisShell; + }); + }} + > + {thisShell.name} + + ))} + - - - ); - }, + + ); + }, + )} + + + + Fire + + + + stats.shellReload ?? + stats.shellReloads!.reduce((a, b) => a + b, 0) / + stats.shellReloads!.length + } + display={(stats) => + stats.shellReload?.toFixed(2) ?? + stats + .shellReloads!.map((reload) => reload.toFixed(2)) + .join(', ') + } + deltaNominalDisplay={(delta) => delta.toFixed(2)} + /> + {hasNonRegularGun && ( + <> + + + )} - - + + + + + + + + + + + + + + + + + - Fire - - - - stats.shellReload ?? - stats.shellReloads!.reduce((a, b) => a + b, 0) / - stats.shellReloads!.length - } - display={(stats) => - stats.shellReload?.toFixed(2) ?? - stats - .shellReloads!.map((reload) => reload.toFixed(2)) - .join(', ') - } - deltaNominalDisplay={(delta) => delta.toFixed(2)} - /> - {hasNonRegularGun && ( - <> - - - - )} - - - - - - - - - - - - - - - - - + Maneuverability + + + + + + + + + + + + + - Maneuverability - - - - - - - - - - - - - + Survivability + + + (stats.fireChance * 100).toFixed(0)} + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + + (stats.camouflageStill * 100).toFixed(0)} + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + (stats.camouflageMoving * 100).toFixed(0)} + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + + (stats.camouflageShootingStill * 100).toFixed(0) + } + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + + (stats.camouflageShootingMoving * 100).toFixed(0) + } + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + + (stats.camouflageCaughtOnFire * 100).toFixed(0) + } + deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} + /> + + + + + + - Survivability - - - (stats.fireChance * 100).toFixed(0)} - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - - (stats.camouflageStill * 100).toFixed(0)} - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - (stats.camouflageMoving * 100).toFixed(0)} - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - - (stats.camouflageShootingStill * 100).toFixed(0) - } - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - - (stats.camouflageShootingMoving * 100).toFixed(0) - } - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - - (stats.camouflageCaughtOnFire * 100).toFixed(0) - } - deltaNominalDisplay={(delta) => (delta * 100).toFixed(0)} - /> - - - - - - + setAddTankDialogOpen(true)} + > + + + )}