fix: some linting for new proto 3

This commit is contained in:
TrèsAbhi committed 2024-10-05 16:44:07 -05:00
1 parent 79bc259565
commit f14ca394b5
29 files changed
+522 -418

No files matched your search

@@ -12,7 +12,9 @@ interface BodyProps {
export function Body({ stats }: BodyProps) {
const members = CompareEphemeral.use((state) => state.members);
const hasNonRegularGun = members.some(({ gun }) => gun.type !== 'regular');
const hasNonRegularGun = members.some(
({ gun }) => gun.gunType!.$case !== 'regular',
);
const mutateCompareEphemeral = CompareEphemeral.useMutation();
return (
@@ -29,35 +31,43 @@ export function Body({ stats }: BodyProps) {
<StickyColumnHeaderCell key={key} top={137}>
<Flex justify="center">
<Flex>
{gun.shells.map((thisShell, shellIndex) => (
<IconButton
color={thisShell.id === shell.id ? undefined : '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={() => {
mutateCompareEphemeral((draft) => {
draft.members[index].shell = thisShell;
});
}}
>
<img
alt={thisShell.name}
width={16}
height={16}
src={asset(`icons/shells/${thisShell.icon}.webp`)}
/>
</IconButton>
))}
{gun.gunType!.value.gun.shells.map(
(thisShell, shellIndex) => (
<IconButton
color={thisShell.id === shell.id ? undefined : 'gray'}
variant="soft"
key={thisShell.id}
style={{
borderTopLeftRadius: shellIndex === 0 ? undefined : 0,
borderBottomLeftRadius:
shellIndex === 0 ? undefined : 0,
borderTopRightRadius:
shellIndex ===
gun.gunType!.value.gun.shells.length - 1
? undefined
: 0,
borderBottomRightRadius:
shellIndex ===
gun.gunType!.value.gun.shells.length - 1
? undefined
: 0,
marginLeft: shellIndex === 0 ? 0 : -1,
}}
onClick={() => {
mutateCompareEphemeral((draft) => {
draft.members[index].shell = thisShell;
});
}}
>
<img
alt={thisShell.name}
width={16}
height={16}
src={asset(`icons/shells/${thisShell.icon}.webp`)}
/>
</IconButton>
),
)}
</Flex>
</Flex>
</StickyColumnHeaderCell>
@@ -1,11 +1,11 @@
import {
asset,
availableProvisions,
consumableDefinitions,
equipmentDefinitions,
fetchConsumableDefinitions,
fetchEquipmentDefinitions,
fetchProvisionDefinitions,
fetchSkillDefinitions,
permanentSkills,
provisionDefinitions,
skillDefinitions,
} from '@blitzkit/core';
import { checkConsumableProvisionInclusivity } from '@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity';
import { ComponentPlaceholderIcon } from '@radix-ui/react-icons';
@@ -31,10 +31,10 @@ interface CompareTableProps {
stats: TankCharacteristics[];
}
const awaitedSkillDefinitions = await skillDefinitions;
const awaitedEquipmentDefinitions = await equipmentDefinitions;
const awaitedConsumableDefinitions = await consumableDefinitions;
const awaitedProvisionDefinitions = await provisionDefinitions;
const skillDefinitions = await fetchSkillDefinitions();
const equipmentDefinitions = await fetchEquipmentDefinitions();
const consumableDefinitions = await fetchConsumableDefinitions();
const provisionDefinitions = await fetchProvisionDefinitions();
export function CompareTable({ stats }: CompareTableProps) {
const crewSkills = CompareEphemeral.use((state) => state.crewSkills);
@@ -84,10 +84,10 @@ export function CompareTable({ stats }: CompareTableProps) {
<Popover.Trigger>
<Button variant="ghost" radius="large">
<Flex direction="column" style={{ gap: 2 }}>
{Object.entries(awaitedSkillDefinitions.classes).map(
{Object.entries(skillDefinitions.classes).map(
([tankClass, skills]) => (
<Flex key={tankClass} style={{ gap: 2 }}>
{skills.map((skill) => (
{skills.skills.map((skill) => (
<div
key={skill}
style={{
@@ -169,14 +169,14 @@ export function CompareTable({ stats }: CompareTableProps) {
index,
) => {
const equipmentPreset =
awaitedEquipmentDefinitions.presets[tank.equipment];
equipmentDefinitions.presets[tank.equipmentPreset];
const provisionsList = availableProvisions(
tank,
gun,
awaitedProvisionDefinitions,
provisionDefinitions,
);
const consumablesList = Object.values(
awaitedConsumableDefinitions,
consumableDefinitions,
).filter((consumable) =>
checkConsumableProvisionInclusivity(consumable, tank, gun),
);
@@ -238,7 +238,8 @@ export function CompareTable({ stats }: CompareTableProps) {
member.turret = member.tank.turrets[0];
member.gun = member.turret.guns[0];
member.shell = member.gun.shells[0];
member.shell =
member.gun.gunType!.value.base.shells[0];
member.engine = member.tank.engines[0];
member.track = member.tank.tracks[0];
});
@@ -254,7 +255,8 @@ export function CompareTable({ stats }: CompareTableProps) {
member.turret = member.tank.turrets.at(-1)!;
member.gun = member.turret.guns.at(-1)!;
member.shell = member.gun.shells[0];
member.shell =
member.gun.gunType!.value.base.shells[0];
member.engine = member.tank.engines.at(-1)!;
member.track = member.tank.tracks.at(-1)!;
});
@@ -282,7 +284,8 @@ export function CompareTable({ stats }: CompareTableProps) {
{provisions.map((provision, index) => (
<img
alt={
awaitedProvisionDefinitions[provision].name
provisionDefinitions.provisions[provision]
.name
}
key={provision}
src={asset(
@@ -326,7 +329,7 @@ export function CompareTable({ stats }: CompareTableProps) {
(provision) => provision.id,
)}
selected={provisions}
disabled={tank.provisions === provisions.length}
disabled={tank.maxProvisions === provisions.length}
onChange={(provisions) => {
mutateCompareEphemeral((draft) => {
draft.members[index].provisions = provisions;
@@ -462,8 +465,9 @@ export function CompareTable({ stats }: CompareTableProps) {
{consumables.map((consumable, index) => (
<img
alt={
awaitedConsumableDefinitions[consumable]
.name
consumableDefinitions.consumables[
consumable
].name
}
key={consumable}
src={asset(
@@ -510,7 +514,9 @@ export function CompareTable({ stats }: CompareTableProps) {
draft.members[index].consumables = consumables;
});
}}
disabled={tank.consumables === consumables.length}
disabled={
tank.maxConsumables === consumables.length
}
/>
<Flex justify="end" mt="4">
@@ -1,4 +1,4 @@
import { provisionDefinitions } from '@blitzkit/core';
import { fetchProvisionDefinitions } from '@blitzkit/core';
import { PlusIcon, TrashIcon } from '@radix-ui/react-icons';
import { Button, Dialog, Flex, SegmentedControl } from '@radix-ui/themes';
import { tankToCompareMember } from '../../core/blitzkit/tankToCompareMember';
@@ -14,7 +14,7 @@ interface ControlsProps {
onAddTankDialogOpenChange: (open: boolean) => void;
}
const awaitedProvisionDefinitions = await provisionDefinitions;
const provisionDefinitions = await fetchProvisionDefinitions();
export function Controls({
addTankDialogOpen,
@@ -51,7 +51,7 @@ export function Controls({
onSelect={(tank) => {
mutateCompareEphemeral((draft) => {
draft.members.push(
tankToCompareMember(tank, awaitedProvisionDefinitions),
tankToCompareMember(tank, provisionDefinitions),
);
draft.sorting = undefined;
});
@@ -61,7 +61,7 @@ export function Controls({
mutateCompareEphemeral((draft) => {
draft.members.push(
...tanks.map((tank) =>
tankToCompareMember(tank, awaitedProvisionDefinitions),
tankToCompareMember(tank, provisionDefinitions),
),
);
draft.sorting = undefined;
@@ -1,4 +1,4 @@
import { provisionDefinitions } from '@blitzkit/core';
import { fetchProvisionDefinitions } from '@blitzkit/core';
import { ExternalLinkIcon, LoopIcon, TrashIcon } from '@radix-ui/react-icons';
import { Dialog, Flex, IconButton } from '@radix-ui/themes';
import Link from 'next/link';
@@ -12,7 +12,7 @@ interface TankControlProps {
id: number;
}
const awaitedProvisionDefinitions = await provisionDefinitions;
const provisionDefinitions = await fetchProvisionDefinitions();
export function TankControl({ index, id }: TankControlProps) {
const [switchTankDialogOpen, setSwitchTankDialogOpen] = useState(false);
@@ -58,7 +58,7 @@ export function TankControl({ index, id }: TankControlProps) {
mutateCompareEphemeral((draft) => {
draft.members[index] = tankToCompareMember(
tank,
awaitedProvisionDefinitions,
provisionDefinitions,
);
draft.sorting = undefined;
});