import React from "react"; import { GameState } from "./App"; import Typewriter from "typewriter-effect"; const Tile = ({ word, selectWordHandler, }: { selectWordHandler: () => void; word: GameState["words"][number]; }) => ( {word.word.toUpperCase()} ); export const Grid = ({ selectWordHandler, submitSelectionHandler, flipGroupHandler, gameState, }: { selectWordHandler: (idx: number) => void; flipGroupHandler: (idx: number) => void; submitSelectionHandler: () => void; gameState: GameState; }) => { const groups = gameState.groups.map( ({ words, title, reason, flipped }, idx) => ( flipGroupHandler(idx)} className="Completed-group"> { {flipped ? ( tw.typeString(reason).start()} component={"p"} > ) : ( {title !== "LOADING" ? ( tw.typeString(title).start()} component={"h1"} > ) : ( tw.typeString("Loading...").start()} component={"h1"} > )} tw.typeString(words.join(", ")).start()} component={"h2"} > )} } ) ); const tiles = gameState.words.map((word, i) => !word.used ? ( selectWordHandler(i)} word={word} key={i} /> ) : undefined ); return ( {groups} {tiles} {gameState.words.filter(({ selected }) => selected).length === 4 ? ( SUBMIT ) : undefined} ); };
{word.word.toUpperCase()}
{flipped ? ( tw.typeString(reason).start()} component={"p"} > ) : ( {title !== "LOADING" ? ( tw.typeString(title).start()} component={"h1"} > ) : ( tw.typeString("Loading...").start()} component={"h1"} > )} tw.typeString(words.join(", ")).start()} component={"h2"} > )}