import { InformationCircleIcon } from "@heroicons/react/outline"; import { useState, useEffect } from "react"; import { Alert } from "./components/alerts/Alert"; import { Grid } from "./components/grid/Grid"; import { Keyboard } from "./components/keyboard/Keyboard"; import { AboutModal } from "./components/modals/AboutModal"; import { InfoModal } from "./components/modals/InfoModal"; import { WinModal } from "./components/modals/WinModal"; import { isWordInWordList, isWinningWord, solution } from "./lib/words"; function App() { const [guesses, setGuesses] = useState([]); const [currentGuess, setCurrentGuess] = useState(""); const [isGameWon, setIsGameWon] = useState(false); const [isWinModalOpen, setIsWinModalOpen] = useState(false); const [isInfoModalOpen, setIsInfoModalOpen] = useState(false); const [isAboutModalOpen, setIsAboutModalOpen] = useState(false); const [isWordNotFoundAlertOpen, setIsWordNotFoundAlertOpen] = useState(false); const [isGameLost, setIsGameLost] = useState(false); useEffect(() => { if (isGameWon) { setIsWinModalOpen(true); } }, [isGameWon]); const onChar = (value: string) => { if (currentGuess.length < 5 && guesses.length < 6) { setCurrentGuess(`${currentGuess}${value}`); } }; const onDelete = () => { setCurrentGuess(currentGuess.slice(0, -1)); }; const onEnter = () => { if (!isWordInWordList(currentGuess)) { setIsWordNotFoundAlertOpen(true); return setTimeout(() => { setIsWordNotFoundAlertOpen(false); }, 2000); } const winningWord = isWinningWord(currentGuess); if (currentGuess.length === 5 && guesses.length < 6 && !isGameWon) { setGuesses([...guesses, currentGuess]); setCurrentGuess(""); if (winningWord) { return setIsGameWon(true); } if (guesses.length === 5) { setIsGameLost(true); return setTimeout(() => { setIsGameLost(false); }, 2000); } } }; return (

Not Wordle

setIsInfoModalOpen(true)} />
setIsWinModalOpen(false)} guesses={guesses} /> setIsInfoModalOpen(false)} /> setIsAboutModalOpen(false)} />
); } export default App;