generated from jlumbroso/react-ts-starter
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathLetter.tsx
43 lines (34 loc) · 989 Bytes
/
Letter.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React, { useContext, useEffect } from "react"
import PropTypes from "prop-types"
import { AppContext } from "../App"
type Props = {
letterPos: number
attemptVal: number
}
function Letter({ letterPos, attemptVal }: Props) {
const { board, currAttempt, correctWord, setDisabledLetters } =
useContext(AppContext)
const letter = board[attemptVal][letterPos]
// compute color
let letterState = ""
const correct = correctWord[letterPos] === letter
const almost = correctWord.includes(letter)
if (currAttempt.attempt > attemptVal) {
letterState = "error"
if (correct) letterState = "correct"
else if (almost) letterState = "almost"
}
useEffect(() => {
if (currAttempt.attempt > attemptVal) {
if (letter !== "" && !correct && !almost) {
setDisabledLetters((prev: string[]) => [...prev, letter])
}
}
})
return (
<div className="letter" id={letterState}>
{letter}
</div>
)
}
export default Letter