mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-25 03:29:51 +01:00
update compare
This commit is contained in:
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";
|
||||||
|
|||||||
Reference in new issue
Block a user