update compare

This commit is contained in:
tresabhi committed 2026-08-04 20:28:54 -05:00
1 parent 6e759e52c9
commit 23d2ca9a42
6 files changed
+35 -47

No files matched your search

@@ -1,4 +1,3 @@
import { asset } from "@blitzkit/core";
import { Flex, Heading, IconButton, Table } from "@radix-ui/themes"; import { Flex, Heading, IconButton, Table } from "@radix-ui/themes";
import type { TankCharacteristics } from "../../core/blitzkit/tankCharacteristics"; import type { TankCharacteristics } from "../../core/blitzkit/tankCharacteristics";
import { useLocale } from "../../hooks/useLocale"; import { useLocale } from "../../hooks/useLocale";
@@ -58,7 +57,7 @@ export function Body({ stats }: BodyProps) {
alt={unwrap(thisShell.name!)} alt={unwrap(thisShell.name!)}
width={16} width={16}
height={16} height={16}
src={asset(`icons/shells/${thisShell.icon}.webp`)} src={`/api/icons/shells/${thisShell.icon}.webp`}
/> />
</IconButton> </IconButton>
))} ))}
@@ -1,4 +1,4 @@
import { asset, availableProvisions, permanentSkills } from "@blitzkit/core"; import { availableProvisions, permanentSkills } from "@blitzkit/core";
import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity"; import { checkConsumableProvisionInclusivity } from "@blitzkit/core/src/blitzkit/checkConsumableProvisionInclusivity";
import { ComponentPlaceholderIcon } from "@radix-ui/react-icons"; import { ComponentPlaceholderIcon } from "@radix-ui/react-icons";
import { import {
@@ -11,10 +11,7 @@ import {
Text, Text,
} from "@radix-ui/themes"; } from "@radix-ui/themes";
import { times } from "lodash-es"; import { times } from "lodash-es";
import { awaitableConsumableDefinitions } from "../../core/awaitables/consumableDefinitions"; import { api } from "../../core/blitzkit/api";
import { awaitableEquipmentDefinitions } from "../../core/awaitables/equipmentDefinitions";
import { awaitableProvisionDefinitions } from "../../core/awaitables/provisionDefinitions";
import { awaitableSkillDefinitions } from "../../core/awaitables/skillDefinitions";
import type { TankCharacteristics } from "../../core/blitzkit/tankCharacteristics"; import type { TankCharacteristics } from "../../core/blitzkit/tankCharacteristics";
import { Var } from "../../core/radix/var"; import { Var } from "../../core/radix/var";
import { useLocale } from "../../hooks/useLocale"; import { useLocale } from "../../hooks/useLocale";
@@ -42,10 +39,10 @@ const [
consumableDefinitions, consumableDefinitions,
provisionDefinitions, provisionDefinitions,
] = await Promise.all([ ] = await Promise.all([
awaitableSkillDefinitions, api.skillDefinitions(),
awaitableEquipmentDefinitions, api.equipmentDefinitions(),
awaitableConsumableDefinitions, api.consumableDefinitions(),
awaitableProvisionDefinitions, api.provisionDefinitions(),
]); ]);
export function CompareTable({ stats }: CompareTableProps) { export function CompareTable({ stats }: CompareTableProps) {
@@ -234,7 +231,7 @@ export function CompareTable({ stats }: CompareTableProps) {
alt={module} alt={module}
width={24} width={24}
height={24} height={24}
src={asset(`icons/modules/${module}.webp`)} src={`/api/icons/modules/${module}.webp`}
style={{ style={{
marginLeft: index > 0 ? -8 : 0, marginLeft: index > 0 ? -8 : 0,
objectFit: "contain", objectFit: "contain",
@@ -323,9 +320,7 @@ export function CompareTable({ stats }: CompareTableProps) {
.name!, .name!,
)} )}
key={provision} key={provision}
src={asset( src={`/api//icons/provisions/${provision}.webp`}
`/icons/provisions/${provision}.webp`,
)}
style={{ style={{
left: "50%", left: "50%",
/** /**
@@ -530,9 +525,7 @@ export function CompareTable({ stats }: CompareTableProps) {
].name!, ].name!,
)} )}
key={consumable} key={consumable}
src={asset( src={`/api/icons/consumables/${consumable}.webp`}
`/icons/consumables/${consumable}.webp`,
)}
style={{ style={{
left: "50%", left: "50%",
/** /**
@@ -624,7 +617,7 @@ export function CompareTable({ stats }: CompareTableProps) {
variant={camouflage ? "solid" : "outline"} variant={camouflage ? "solid" : "outline"}
> >
<img <img
src={asset("icons/camo.webp")} src={`/api/icons/camo.webp`}
style={{ style={{
width: "1em", width: "1em",
height: "1em", height: "1em",
@@ -1,6 +1,6 @@
import { PlusIcon, TrashIcon } from "@radix-ui/react-icons"; import { PlusIcon, TrashIcon } from "@radix-ui/react-icons";
import { Button, Dialog, Flex, SegmentedControl } from "@radix-ui/themes"; import { Button, Dialog, Flex, SegmentedControl } from "@radix-ui/themes";
import { awaitableProvisionDefinitions } from "../../core/awaitables/provisionDefinitions"; import { api } from "../../core/blitzkit/api";
import { tankToCompareMember } from "../../core/blitzkit/tankToCompareMember"; import { tankToCompareMember } from "../../core/blitzkit/tankToCompareMember";
import { useLocale } from "../../hooks/useLocale"; import { useLocale } from "../../hooks/useLocale";
import { CompareEphemeral } from "../../stores/compareEphemeral"; import { CompareEphemeral } from "../../stores/compareEphemeral";
@@ -15,7 +15,7 @@ interface ControlsProps {
onAddTankDialogOpenChange: (open: boolean) => void; onAddTankDialogOpenChange: (open: boolean) => void;
} }
const provisionDefinitions = await awaitableProvisionDefinitions; const provisionDefinitions = await api.provisionDefinitions();
export function Controls({ export function Controls({
addTankDialogOpen, addTankDialogOpen,
@@ -56,7 +56,7 @@ export function Controls({
onSelect={(tank) => { onSelect={(tank) => {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
draft.members.push( draft.members.push(
tankToCompareMember(tank, provisionDefinitions) tankToCompareMember(tank, provisionDefinitions),
); );
draft.sorting = undefined; draft.sorting = undefined;
}); });
@@ -67,7 +67,7 @@ export function Controls({
draft.members.push( draft.members.push(
...tanks.map((tank) => { ...tanks.map((tank) => {
return tankToCompareMember(tank, provisionDefinitions); return tankToCompareMember(tank, provisionDefinitions);
}) }),
); );
draft.sorting = undefined; draft.sorting = undefined;
}); });
@@ -1,7 +1,7 @@
import { ExternalLinkIcon, LoopIcon, TrashIcon } from "@radix-ui/react-icons"; import { ExternalLinkIcon, LoopIcon, TrashIcon } from "@radix-ui/react-icons";
import { Dialog, Flex, IconButton } from "@radix-ui/themes"; import { Dialog, Flex, IconButton } from "@radix-ui/themes";
import { useState } from "react"; import { useState } from "react";
import { awaitableProvisionDefinitions } from "../../core/awaitables/provisionDefinitions"; import { api } from "../../core/blitzkit/api";
import { tankToCompareMember } from "../../core/blitzkit/tankToCompareMember"; import { tankToCompareMember } from "../../core/blitzkit/tankToCompareMember";
import { useLocale } from "../../hooks/useLocale"; import { useLocale } from "../../hooks/useLocale";
import { CompareEphemeral } from "../../stores/compareEphemeral"; import { CompareEphemeral } from "../../stores/compareEphemeral";
@@ -13,7 +13,7 @@ interface TankControlProps {
slug: string; slug: string;
} }
const provisionDefinitions = await awaitableProvisionDefinitions; const provisionDefinitions = await api.provisionDefinitions();
export function TankControl({ index, slug }: TankControlProps) { export function TankControl({ index, slug }: TankControlProps) {
const { locale, strings } = useLocale(); const { locale, strings } = useLocale();
@@ -61,7 +61,7 @@ export function TankControl({ index, slug }: TankControlProps) {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
draft.members[index] = tankToCompareMember( draft.members[index] = tankToCompareMember(
tank, tank,
provisionDefinitions provisionDefinitions,
); );
draft.sorting = undefined; draft.sorting = undefined;
}); });
@@ -1,23 +1,19 @@
import { createDefaultSkills } from "@blitzkit/core"; import { createDefaultSkills } from "@blitzkit/core";
import { Flex, Heading, Text } from "@radix-ui/themes"; import { Flex, Heading, Text } from "@radix-ui/themes";
import { useEffect, useMemo, useState } from "react"; import { useEffect, useMemo, useState } from "react";
import { CompareTable } from "../../../components/Compare/CompareTable"; import { CompareTable } from "../../../../components/Compare/CompareTable";
import { Controls } from "../../../components/Compare/Controls"; import { Controls } from "../../../../components/Compare/Controls";
import { DamageWarning } from "../../../components/DamageWarning"; import { DamageWarning } from "../../../../components/DamageWarning";
import { PageWrapper } from "../../../components/PageWrapper"; import { PageWrapper } from "../../../../components/PageWrapper";
import { awaitableEquipmentDefinitions } from "../../../core/awaitables/equipmentDefinitions"; import { api } from "../../../../core/blitzkit/api";
import { awaitableModelDefinitions } from "../../../core/awaitables/modelDefinitions"; import { tankCharacteristics } from "../../../../core/blitzkit/tankCharacteristics";
import { awaitableProvisionDefinitions } from "../../../core/awaitables/provisionDefinitions"; import { tankToCompareMember } from "../../../../core/blitzkit/tankToCompareMember";
import { awaitableSkillDefinitions } from "../../../core/awaitables/skillDefinitions";
import { awaitableTankDefinitions } from "../../../core/awaitables/tankDefinitions";
import { tankCharacteristics } from "../../../core/blitzkit/tankCharacteristics";
import { tankToCompareMember } from "../../../core/blitzkit/tankToCompareMember";
import { import {
type LocaleAcceptorProps, type LocaleAcceptorProps,
LocaleProvider, LocaleProvider,
useLocale, useLocale,
} from "../../../hooks/useLocale"; } from "../../../../hooks/useLocale";
import { CompareEphemeral } from "../../../stores/compareEphemeral"; import { CompareEphemeral } from "../../../../stores/compareEphemeral";
const [ const [
modelDefinitions, modelDefinitions,
@@ -26,11 +22,11 @@ const [
skillDefinitions, skillDefinitions,
tankDefinitions, tankDefinitions,
] = await Promise.all([ ] = await Promise.all([
awaitableModelDefinitions, api.modelDefinitions(),
awaitableEquipmentDefinitions, api.equipmentDefinitions(),
awaitableProvisionDefinitions, api.provisionDefinitions(),
awaitableSkillDefinitions, api.skillDefinitions(),
awaitableTankDefinitions, api.tankDefinitions(),
]); ]);
export function Page({ locale }: LocaleAcceptorProps) { export function Page({ locale }: LocaleAcceptorProps) {
@@ -1,7 +1,7 @@
--- ---
import ToolOpenGraph from "../../../components/ToolOpenGraph.astro"; import ToolOpenGraph from "../../../../components/ToolOpenGraph.astro";
import { tools } from "../../../constants/tools"; import { tools } from "../../../../constants/tools";
import BaseLayout from "../../../layouts/BaseLayout.astro"; import BaseLayout from "../../../../layouts/BaseLayout.astro";
import { Page } from "./_index"; import { Page } from "./_index";
export { getStaticPaths } from "../index.astro"; export { getStaticPaths } from "../index.astro";