revert tank exclusion

This commit is contained in:
tresabhi committed 2026-10-07 16:32:48 -05:00
1 parent aa6268a86b
commit e19d0d5895
3 files changed
+4 -27

No files matched your search

@@ -1,6 +1,5 @@
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 { useMemo } from "react";
import { api } from "../../core/blitzkit/api"; 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";
@@ -23,11 +22,6 @@ export function Controls({
onAddTankDialogOpenChange, onAddTankDialogOpenChange,
}: ControlsProps) { }: ControlsProps) {
const deltaMode = ComparePersistent.use((state) => state.deltaMode); const deltaMode = ComparePersistent.use((state) => state.deltaMode);
const members = CompareEphemeral.use((state) => state.members);
const memberIds = useMemo(
() => members.map((member) => member.tank.id),
[members],
);
const { strings } = useLocale(); const { strings } = useLocale();
return ( return (
@@ -59,7 +53,6 @@ export function Controls({
> >
<TankSearch <TankSearch
compact compact
exclude={memberIds}
onSelect={(tank) => { onSelect={(tank) => {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
draft.members.push( draft.members.push(
@@ -1,6 +1,6 @@
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 { useMemo, useState } from "react"; import { useState } from "react";
import { api } from "../../core/blitzkit/api"; 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";
@@ -18,14 +18,6 @@ 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();
const [switchTankDialogOpen, setSwitchTankDialogOpen] = useState(false); const [switchTankDialogOpen, setSwitchTankDialogOpen] = useState(false);
const members = CompareEphemeral.use((state) => state.members);
const otherMemberIds = useMemo(
() =>
members
.filter((_, memberIndex) => memberIndex !== index)
.map((member) => member.tank.id),
[members, index],
);
return ( return (
<Flex gap="3" justify="center" style={{ width: "100%" }}> <Flex gap="3" justify="center" style={{ width: "100%" }}>
@@ -65,7 +57,6 @@ export function TankControl({ index, slug }: TankControlProps) {
> >
<TankSearch <TankSearch
compact compact
exclude={otherMemberIds}
onSelect={(tank) => { onSelect={(tank) => {
CompareEphemeral.mutate((draft) => { CompareEphemeral.mutate((draft) => {
draft.members[index] = tankToCompareMember( draft.members[index] = tankToCompareMember(
@@ -38,7 +38,6 @@ export type TankSearchProps = MaybeSkeletonComponentProps &
compact?: boolean; compact?: boolean;
onSelect?: (tank: TankDefinition) => void; onSelect?: (tank: TankDefinition) => void;
onSelectAll?: (tanks: TankDefinition[]) => void; onSelectAll?: (tanks: TankDefinition[]) => void;
exclude?: number[];
}; };
const PREVIEW_COUNT = 20; const PREVIEW_COUNT = 20;
@@ -53,14 +52,14 @@ const [gameDefinitions, modelDefinitions, tankDefinitions, tankNames] =
]); ]);
export const TankSearch = memo<TankSearchProps>( export const TankSearch = memo<TankSearchProps>(
({ compact, onSelect, onSelectAll, exclude, skeleton, ...props }) => { ({ compact, onSelect, onSelectAll, skeleton, ...props }) => {
const { strings, locale } = useLocale(); const { strings, locale } = useLocale();
const wargaming = App.use((state) => state.logins.wargaming); const wargaming = App.use((state) => state.logins.wargaming);
const awaitedTanksDefinitionsArray = Object.values(tankDefinitions.tanks); const awaitedTanksDefinitionsArray = Object.values(tankDefinitions.tanks);
const tankopediaSort = TankSort.use(); const tankopediaSort = TankSort.use();
const tankFilters = TankFilters.use(); const tankFilters = TankFilters.use();
const allFiltered = usePromise( const filtered = usePromise(
() => { () => {
if (tankFilters.search === null) { if (tankFilters.search === null) {
return filterTanks( return filterTanks(
@@ -82,15 +81,9 @@ export const TankSearch = memo<TankSearchProps>(
[tankFilters] as any, [tankFilters] as any,
); );
const sorted = useMemo(() => { const sorted = useMemo(() => {
const filtered = allFiltered.filter(
(tank) => !exclude?.includes(tank.id),
);
if (tankFilters.search === null) { if (tankFilters.search === null) {
let sorted: TankDefinition[]; let sorted: TankDefinition[];
filtered.sort((a, b) => a.id - b.id);
switch (tankopediaSort.by) { switch (tankopediaSort.by) {
case "meta.none": case "meta.none":
sorted = metaSortTank(filtered, gameDefinitions); sorted = metaSortTank(filtered, gameDefinitions);
@@ -424,7 +417,7 @@ export const TankSearch = memo<TankSearchProps>(
} else { } else {
return filtered; return filtered;
} }
}, [tankFilters, tankopediaSort, exclude]); }, [tankFilters, tankopediaSort]);
const [loadedCards, setLoadedCards] = useState(DEFAULT_LOADED_CARDS); const [loadedCards, setLoadedCards] = useState(DEFAULT_LOADED_CARDS);
const tanks = sorted.slice(0, loadedCards); const tanks = sorted.slice(0, loadedCards);