import { RankedMode } from "@prisma/client"; import { Box, Grid, useMediaQuery } from "@chakra-ui/react"; import ModeImage from "../common/ModeImage"; import SubText from "../common/SubText"; import { t } from "@lingui/macro"; import { FaCheck } from "react-icons/fa"; import { CSSVariables } from "../../utils/CSSVariables"; import NewTable, { TableRow } from "../common/NewTable"; function getModeCells( enabledModes: RankedMode[] ): { [mode in RankedMode]: JSX.Element | null } { return Object.values(RankedMode).reduce((map, mode) => { map[mode] = enabledModes.includes(mode) ? ( ) : null; return map; }, {} as { [mode in RankedMode]: JSX.Element | null }); } function getTableData( stagesSelected: Record ): (TableRow | null)[] { return Object.entries(stagesSelected).map(([stage, modes], index) => modes.length > 0 ? { id: index, stage: t({ id: stage }), ...getModeCells(modes), } : null ); } function getGridModeCells( stagesSelected: Record ): JSX.Element[] { return Object.values(RankedMode).map((mode) => { return (
{Object.entries(stagesSelected).map(([stage, modes]) => modes.includes(mode) ? ( {t({ id: stage })} ) : null )}
); }); } export function MapPoolDisplay({ stagesSelected, }: { stagesSelected: Record; }) { const [isMobile] = useMediaQuery("(max-width: 48em)"); return isMobile ? ( {getGridModeCells(stagesSelected)} ) : ( ); }