import { Box, type ThemeUIStyleObject } from "theme-ui"; interface GridProps { elems: readonly (T | undefined)[]; renderElem: (elem: T, index: number) => JSX.Element | null; defineElementKey: (elem: T) => string; gridTemplateMinPx?: string; gridGap?: string; sx?: ThemeUIStyleObject; } function Grid({ elems, renderElem, defineElementKey, gridTemplateMinPx = "320px", gridGap = "16px", sx, }: GridProps): JSX.Element { return ( {elems.map((elem: T | undefined, i: number) => // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions elem ? ( {renderElem(elem, i)} ) : null, )} ); } export default Grid;