import { Avatar, ButtonBase, Theme, Tooltip } from "@mui/material"; import { Tune as PresetsIcon, ViewList as ComponentsIcon } from "@mui/icons-material"; import { makeStyles } from "@mui/styles"; import { useThemeType } from "../hooks/useThemeType"; import classnames from "classnames"; import { capitalize } from "lodash"; import React from "react"; import { ProductTab } from "./DeviceProduct"; const useStyles = makeStyles((theme: Theme) => { const themeType = useThemeType(); const activeBG = theme.palette.secondary.main; return ({ avatar: { color: themeType === "light" ? theme.palette.common.black : theme.palette.common.white, backgroundColor: "transparent", width: theme.spacing(5), height: theme.spacing(5), border: "1px solid", borderColor: theme.palette.divider }, active: { color: theme.palette.getContrastText(activeBG), backgroundColor: activeBG, border: 0 }, customIcon: { padding: theme.spacing(0.5) } }); }); interface Props { tab: ProductTab; onClick: (selected: ProductTab) => void; active?: boolean; } export default function ProductTabChip(props: Props) { const classes = useStyles(); const { tab, active, onClick } = props; const name = () => { return capitalize(tab); }; const hasCustomIcon = () => { switch (tab) { default: return false; } }; const customIconSrc = () => { switch (tab) { default: return undefined; } }; const icon = () => { switch (tab) { case "presets": return ; case "components": return ; default: return ; } }; return ( onClick(tab)}> {!hasCustomIcon() && icon()} ); }