import { Box, ToggleButtonGroup } from "@mui/material";
import { useCallback } from "react";
import { allElements, ElementKey } from "../../Types/consts";
import SolidColoredToggleButton from "../SolidColoredToggleButton";
import { SolidToggleButtonGroupProps } from "../SolidToggleButtonGroup";
import { uncoloredEleIcons } from "../StatIcon";
type ElementToggleProps = Omit<SolidToggleButtonGroupProps, "onChange" | "value"> & {
  onChange: (value: ElementKey | "") => void
  value: ElementKey | ""
}
export default function ElementToggle({ value, onChange, ...props }: ElementToggleProps) {
  const cb = useCallback((e, newVal) => onChange(newVal || ""), [onChange])
  return <ToggleButtonGroup exclusive onChange={cb} value={value || allElements} {...props}>
    {allElements.map(ele => <SolidColoredToggleButton key={ele} value={ele} selectedColor={ele} >
      <Box sx={{ fontSize: "2em", lineHeight: 1 }}>{uncoloredEleIcons[ele]}</Box>
    </SolidColoredToggleButton>)}
  </ToggleButtonGroup>
}