import { Box, Button, Flex, IconButton } from "@chakra-ui/react"; import { t } from "@lingui/macro"; import ViewSlots, { ViewSlotsAbilities } from "components/builds/ViewSlots"; import AbilitiesSelector from "components/u/AbilitiesSelector"; import { AbilityOrUnknown } from "lib/types"; import { FiCopy, FiEdit, FiSquare } from "react-icons/fi"; import HeadOnlyToggle from "./HeadOnlyToggle"; import LdeSlider from "./LdeSlider"; interface EditableBuildsProps { build: Omit; otherBuild: Omit; setBuild: React.Dispatch< React.SetStateAction> >; showOther: boolean; setShowOther: React.Dispatch>; otherFocused: boolean; changeFocus: () => void; bonusAp: Partial>; setBonusAp: React.Dispatch< React.SetStateAction>> >; otherBonusAp: Partial>; setOtherBonusAp: React.Dispatch< React.SetStateAction>> >; lde: number; otherLde: number; setLde: React.Dispatch>; setOtherLde: React.Dispatch>; } const EditableBuilds: React.FC = ({ build, otherBuild, setBuild, showOther, setShowOther, otherFocused, changeFocus, bonusAp, setBonusAp, otherBonusAp, setOtherBonusAp, lde, otherLde, setLde, setOtherLde, }) => { const buildToEdit = otherFocused ? otherBuild : build; const handleChange = (value: Object) => setBuild({ ...buildToEdit, ...value }); const handleClickBuildAbility = ( slot: "headAbilities" | "clothingAbilities" | "shoesAbilities", index: number ) => { const copy = buildToEdit[slot].slice(); copy[index] = "UNKNOWN"; handleChange({ [slot]: copy, }); }; const headAbility = build.headAbilities ? build.headAbilities[0] : "SSU"; const otherHeadAbility = otherBuild.headAbilities ? otherBuild.headAbilities[0] : "SSU"; return ( <> {showOther && ( changeFocus()} icon={} isRound mx="auto" /> )} {["OG", "CB"].includes(headAbility) && ( setBonusAp({ ...bonusAp, [headAbility]: !bonusAp[headAbility], }) } /> )} {headAbility === "LDE" && ( setLde(value)} /> )} {showOther && ( changeFocus()} icon={} isRound mx="auto" /> {["OG", "CB"].includes(otherHeadAbility) && ( setOtherBonusAp({ ...otherBonusAp, [otherHeadAbility]: !otherBonusAp[otherHeadAbility], }) } /> )} {otherHeadAbility === "LDE" && ( setOtherLde(value)} /> )} )} setBuild(newAbilities)} /> ); }; export default EditableBuilds;