= ({
guessedLetters,
wordToGuess,
reveal = false,
-}: HangmanWordProps) {
+}) => {
return (
- {wordToGuess.split("").map((letter, index) => (
-
-
- {letter}
-
-
- ))}
+ {wordToGuess.split('').map((letter, index) =>
+ renderLetter(letter, index, guessedLetters, reveal)
+ )}
- )
-}
+ );
+};
+
+export default HangmanWord;
diff --git a/src/Keyboard.tsx b/src/Keyboard.tsx
index 58c95b1..0fa4e49 100644
--- a/src/Keyboard.tsx
+++ b/src/Keyboard.tsx
@@ -1,71 +1,51 @@
-import styles from "./Keyboard.module.css"
+import React from 'react';
+import styles from './Keyboard.module.css';
-const KEYS = [
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "g",
- "h",
- "i",
- "j",
- "k",
- "l",
- "m",
- "n",
- "o",
- "p",
- "q",
- "r",
- "s",
- "t",
- "u",
- "v",
- "w",
- "x",
- "y",
- "z",
-]
+const KEYS = Array.from('abcdefghijklmnopqrstuvwxyz');
type KeyboardProps = {
- disabled?: boolean
- activeLetters: string[]
- inactiveLetters: string[]
- addGuessedLetter: (letter: string) => void
-}
+ disabled?: boolean;
+ activeLetters: string[];
+ inactiveLetters: string[];
+ addGuessedLetter: (letter: string) => void;
+};
-export function Keyboard({
+const Keyboard: React.FC = ({
activeLetters,
inactiveLetters,
addGuessedLetter,
disabled = false,
-}: KeyboardProps) {
+}) => {
return (
- {KEYS.map(key => {
- const isActive = activeLetters.includes(key)
- const isInactive = inactiveLetters.includes(key)
+ {KEYS.map((key) => {
+ const isActive = activeLetters.includes(key);
+ const isInactive = inactiveLetters.includes(key);
+ const buttonClasses = [
+ styles.btn,
+ isActive ? styles.active : '',
+ isInactive ? styles.inactive : '',
+ ].join(' ');
+
return (
- )
+ );
})}
- )
-}
+ );
+};
+
+export default Keyboard;