import { FC } from 'react' import { Recipe } from '../../../src/types' import { EntityIcon } from '../EntityIcon/EntityIcon' import styles from './Recipe.module.css' interface Props { recipe: Recipe } export const RecipeSpan: FC = ({ recipe }) => { const toEntityIcon = ([key, amount]: [string, number]) => ( ) const joinByPlus = (elems: JSX.Element[]) => elems.reduce((acc, curr) => { if (acc.length) { return [...acc, '+', curr] } else { return [curr] } }, [] as (JSX.Element | string)[]) const before = Object.entries({ ...recipe.prerequisites }).map(toEntityIcon) const after = Object.entries({ ...recipe.output }).map(toEntityIcon) return ( {joinByPlus([toEntityIcon(['/Time', recipe.time]), ...before])} → {joinByPlus(after)} ) }