import { Box, Grid, IconButton, NumberDecrementStepper, NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, Radio, Select, } from "@chakra-ui/react"; import { t, Trans } from "@lingui/macro"; import { Ability } from "@prisma/client"; import AbilityIcon from "components/common/AbilityIcon"; import { UseBuildsByWeaponDispatch, UseBuildsByWeaponState, } from "hooks/builds"; import { abilities, isMainAbility } from "lib/lists/abilities"; import { useMyTheme } from "lib/useMyTheme"; import { Fragment } from "react"; import { FiTrash } from "react-icons/fi"; interface Props { filters: UseBuildsByWeaponState["filters"]; dispatch: UseBuildsByWeaponDispatch; } const BuildFilters: React.FC = ({ filters, dispatch }) => { const { gray } = useMyTheme(); return ( <> {filters.map((filter, index) => ( filter.abilityPoints.max ? "red.500" : gray } pr={2} > {isMainAbility(filter.ability) ? ( Included ) : ( Min AP )} filter.abilityPoints.max ? "red.500" : gray } > {isMainAbility(filter.ability) ? ( Excluded ) : ( Max AP )} } onClick={() => dispatch({ type: "REMOVE_FILTER", index })} aria-label="Remove filter" variant="ghost" isRound /> {isMainAbility(filter.ability) ? ( <> dispatch({ type: "SET_FILTER_HAS_ABILITY", index, hasAbility: true, }) } value="HAS_ABILITY" /> dispatch({ type: "SET_FILTER_HAS_ABILITY", index, hasAbility: false, }) } /> ) : ( <> dispatch({ type: "SET_FILTER_ABILITY_POINTS", abilityPoints: { ...filter.abilityPoints!, min: value }, index, }) } > dispatch({ type: "SET_FILTER_ABILITY_POINTS", abilityPoints: { ...filter.abilityPoints!, max: value }, index, }) } > )} ))} ); }; export default BuildFilters;