diff --git a/package-lock.json b/package-lock.json
index cdc3e52..4a67ad8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4538,6 +4538,15 @@
"utila": "~0.4"
}
},
+ "dom-helpers": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz",
+ "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "csstype": "^2.6.7"
+ }
+ },
"dom-serializer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
@@ -11073,6 +11082,17 @@
"workbox-webpack-plugin": "4.3.1"
}
},
+ "react-transition-group": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz",
+ "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==",
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ }
+ },
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
diff --git a/package.json b/package.json
index 6a2a04f..8f99f07 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,8 @@
"@testing-library/user-event": "^7.2.1",
"react": "^16.12.0",
"react-dom": "^16.12.0",
- "react-scripts": "3.3.0"
+ "react-scripts": "3.3.0",
+ "react-transition-group": "^4.3.0"
},
"scripts": {
"start": "react-scripts start",
diff --git a/src/App.js b/src/App.js
index d830a02..dff5c5e 100644
--- a/src/App.js
+++ b/src/App.js
@@ -12,12 +12,13 @@ import KeyTypePicker from './components/KeyTypePicker'
import WordListPicker from './components/WordListPicker';
import PracticeMode from './app-modes/PracticeMode';
-import TimedMode from './app-modes/TimedMode'
+import TrainingMode from './app-modes/TrainingMode'
import ChallengeMode from './app-modes/ChallengeMode'
import Header from './components/Header';
import Legend from './components/Legend';
// import GameClock from "./components/GameClock"
+import WordsPerMinute from "./components/WordsPerMinute"
import MorseButtons from './components/MorseButtons'
import MorseBufferDisplay from './components/MorseBufferDisplay'
import MorseHistory from './components/MorseHistory'
@@ -25,6 +26,7 @@ import MorseHistory from './components/MorseHistory'
import StraightKey from './components/StraightKey';
import ElectronicKey from './components/ElectronicKey';
import Footer from './components/Footer';
+import { WPMContextProvider } from './contexts/wpmContext';
export default React.memo(function App() {
@@ -32,39 +34,52 @@ export default React.memo(function App() {
const {gameMode} = useContext(GameModeContext)
const {keyType} = useContext(KeyTypeContext)
+ console.log('gameMode', gameMode);
+ console.log('keyType', keyType);
return (
<>
-
-
-
-
- {gameMode === 'practice' &&
- <>
- {keyType === "straight" ?
- : }
-
-
-
- >
- }
- {/* {gameMode === 'timed' && } */}
- {gameMode === 'challenge' &&
- <>
-
-
-
- {keyType === "straight" ?
- : }
-
-
-
- >
- }
-
-
+
+
+
+
+
+
+ {gameMode === 'practice' &&
+ <>
+ {keyType === "straight" ?
+ : }
+
+
+
+ >
+ }
+ {gameMode === 'timed' &&
+ <>
+ {keyType === "straight" ?
+ : }
+
+
+
+ >
+ }
+ {gameMode === 'challenge' &&
+ <>
+
+
+
+ {keyType === "straight" ?
+ : }
+
+
+
+ >
+ }
+
+
+
>
diff --git a/src/app-modes/TimedMode.js b/src/app-modes/TrainingMode.js
similarity index 83%
rename from src/app-modes/TimedMode.js
rename to src/app-modes/TrainingMode.js
index b317d63..e95c6ec 100644
--- a/src/app-modes/TimedMode.js
+++ b/src/app-modes/TrainingMode.js
@@ -5,11 +5,11 @@ import GameClock from '../components/GameClock'
import MorseBufferDisplay from '../components/MorseBufferDisplay'
import MorseHistory from '../components/MorseHistory'
-function TimedMode() {
+function TrainingMode() {
const {morseCharBuffer, morseWords} = useStraightKey('timed')
- console.log('TimedMode.js rendered')
+ console.log('TrainingMode.js rendered')
return (
<>
@@ -21,4 +21,4 @@ function TimedMode() {
}
-export default React.memo(TimedMode);
+export default React.memo(TrainingMode);
diff --git a/src/components/DitDahDisplay.js b/src/components/DitDahDisplay.js
index fe9d521..4216902 100644
--- a/src/components/DitDahDisplay.js
+++ b/src/components/DitDahDisplay.js
@@ -2,9 +2,7 @@ import React from "react"
function DitDahDisplay(props) {
return (
-
- {props.dd}
-
+ {props.dd}
)
}
diff --git a/src/components/Legend.js b/src/components/Legend.js
index f511e10..acf1112 100644
--- a/src/components/Legend.js
+++ b/src/components/Legend.js
@@ -13,7 +13,7 @@ function Legend() {
let newWord = convertWordToMorse(word)
console.log(newWord);
- playMorseWord(newWord)
+ playMorseWord(newWord)
}
function convertWordToMorse(word) {
@@ -37,6 +37,7 @@ function Legend() {
{legend}
+
)
}
diff --git a/src/components/ModePicker.js b/src/components/ModePicker.js
index e49c880..13a4fc4 100644
--- a/src/components/ModePicker.js
+++ b/src/components/ModePicker.js
@@ -18,8 +18,8 @@ function ModePicker() {
-