learn-morse-code/src/App.js

51 lines
1.7 KiB
JavaScript
Raw Normal View History

import React, {useContext} from 'react';
2019-12-27 09:41:53 +01:00
import './css/App.css';
2019-12-21 23:48:36 +01:00
import MorseButton from './components/MorseButton'
2019-12-27 09:41:53 +01:00
import ModePicker from './components/ModePicker'
import KeyTypePicker from './components/KeyTypePicker'
2020-01-09 10:06:38 +01:00
// import MorseDisplay from './components/MorseDisplay'
// import MorseBufferDisplay from './components/MorseBufferDisplay'
// import GameClock from "./components/GameClock"
// import ChallengeWord from "./components/ChallengeWord"
import {GameModeContext} from "./contexts/gameContext"
import {KeyTypeContext} from "./contexts/keyTypeContext"
import {MorseBufferContextProvider} from "./contexts/morseBufferContext"
import StraightKey from './components/StraightKey'
import ElectronicKey from './components/ElectronicKey'
2020-01-09 10:06:38 +01:00
import PracticeMode from './app-modes/PracticeMode';
import TimedMode from './app-modes/TimedMode'
import ChallengeMode from './app-modes/ChallengeMode'
2020-01-14 11:37:04 +01:00
import Legend from './components/Legend';
2019-12-21 23:40:54 +01:00
function App() {
2019-12-21 23:48:36 +01:00
2020-01-03 08:53:56 +01:00
console.log('App.js rendered')
2020-01-09 10:06:38 +01:00
const {gameMode} = useContext(GameModeContext)
const {keyType} = useContext(KeyTypeContext)
2019-12-21 23:48:36 +01:00
return (
2019-12-27 09:41:53 +01:00
<div id='main-content'>
2020-01-14 11:37:04 +01:00
<Legend />
2019-12-27 09:41:53 +01:00
<ModePicker />
<KeyTypePicker />
<MorseBufferContextProvider>
{keyType === "straight" && <StraightKey />}
{keyType === "electronic" && <ElectronicKey />}
2020-01-09 10:06:38 +01:00
{gameMode === 'practice' && <PracticeMode />}
{gameMode === 'timed' && <TimedMode />}
{gameMode === 'challenge' && <ChallengeMode />}
</MorseBufferContextProvider>
2020-01-09 10:06:38 +01:00
2019-12-27 09:41:53 +01:00
<MorseButton />
2019-12-21 23:48:36 +01:00
</div>
);
2020-01-09 10:06:38 +01:00
2019-12-21 23:40:54 +01:00
}
2020-01-03 08:53:56 +01:00
export default React.memo(App);