From 1d331a1d214eaa908c5524a8659898cae450e32f Mon Sep 17 00:00:00 2001 From: Gene Mecija Date: Fri, 24 Jan 2020 23:32:08 -0800 Subject: [PATCH] Timeouts instead of promises, wpm progress, misc progress --- package-lock.json | 20 ++ package.json | 3 +- src/App.js | 73 ++++--- .../{TimedMode.js => TrainingMode.js} | 6 +- src/components/DitDahDisplay.js | 4 +- src/components/Legend.js | 3 +- src/components/ModePicker.js | 4 +- src/components/MorseBufferDisplay.js | 2 +- src/components/MorseHistory_textbox.js | 44 ++++ src/components/WordsPerMinute.js | 16 ++ src/config.json | 2 +- src/contexts/keyTypeContext.js | 2 +- src/contexts/wpmContext.js | 14 ++ src/css/App.css | 190 +++++++++++++++--- src/css/App.css.map | 2 +- src/hooks/useElectronicKey.js | 35 +++- src/hooks/useMorsePlayer copy.js | 84 ++++++++ src/hooks/useMorsePlayer.js | 113 ++++++++--- src/hooks/useStraightKey.js | 51 ++++- src/scss/App.scss | 149 ++++++++++++-- 20 files changed, 690 insertions(+), 127 deletions(-) rename src/app-modes/{TimedMode.js => TrainingMode.js} (83%) create mode 100644 src/components/MorseHistory_textbox.js create mode 100644 src/components/WordsPerMinute.js create mode 100644 src/contexts/wpmContext.js create mode 100644 src/hooks/useMorsePlayer copy.js 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" ? + : } + + + + + } + +
+