import { Clue, clueClass, CluedLetter, clueWord } from "./clue"; export enum RowState { LockedIn, Editing, Pending, } interface RowProps { rowState: RowState; wordLength: number; cluedLetters: CluedLetter[]; } export function Row(props: RowProps) { const isLockedIn = props.rowState === RowState.LockedIn; const isEditing = props.rowState === RowState.Editing; const letterDivs = props.cluedLetters .concat(Array(props.wordLength).fill({ clue: Clue.Absent, letter: "" })) .slice(0, props.wordLength) .map(({ clue, letter }, i) => { let letterClass = "Row-letter"; if (isLockedIn && clue !== undefined) { letterClass += " " + clueClass(clue); } return ( {letter} ); }); let rowClass = "Row"; if (isLockedIn) rowClass += " Row-locked-in"; return {letterDivs}; }