import { PlusIcon, TrashIcon } from "@radix-ui/react-icons"; import { Button, Dialog, Flex, SegmentedControl } from "@radix-ui/themes"; import { awaitableProvisionDefinitions } from "../../core/awaitables/provisionDefinitions"; import { tankToCompareMember } from "../../core/blitzkit/tankToCompareMember"; import { useLocale } from "../../hooks/useLocale"; import { CompareEphemeral } from "../../stores/compareEphemeral"; import { ComparePersistent, type DeltaMode, } from "../../stores/comparePersistent"; import { TankSearch } from "../TankSearch"; interface ControlsProps { addTankDialogOpen: boolean; onAddTankDialogOpenChange: (open: boolean) => void; } const provisionDefinitions = await awaitableProvisionDefinitions; export function Controls({ addTankDialogOpen, onAddTankDialogOpenChange, }: ControlsProps) { const deltaMode = ComparePersistent.use((state) => state.deltaMode); const { strings } = useLocale(); return ( {strings.website.tools.compare.actions.add.title} {strings.website.tools.compare.actions.add.description} { CompareEphemeral.mutate((draft) => { draft.members.push( tankToCompareMember(tank, provisionDefinitions) ); draft.sorting = undefined; }); onAddTankDialogOpenChange(false); }} onSelectAll={(tanks) => { CompareEphemeral.mutate((draft) => { draft.members.push( ...tanks.map((tank) => { return tankToCompareMember(tank, provisionDefinitions); }) ); draft.sorting = undefined; }); onAddTankDialogOpenChange(false); }} /> { ComparePersistent.mutate((draft) => { draft.deltaMode = value as DeltaMode; }); }} > {strings.website.tools.compare.actions.deltas.none} {strings.website.tools.compare.actions.deltas.percentage} {strings.website.tools.compare.actions.deltas.absolute} ); }