learn-morse-code/src/App.js

83 lines
2.9 KiB
JavaScript
Raw Normal View History

import React, {useContext} from 'react';
2019-12-27 09:41:53 +01:00
import './css/App.css';
import { GameModeContext } from "./contexts/gameModeContext"
import { KeyTypeContext } from "./contexts/keyTypeContext"
import { MorseBufferContextProvider } from "./contexts/morseBufferContext"
import { WordFeederContextProvider } from './contexts/wordFeederContext';
import { WordListPickerContextProvider } from './contexts/wordListPickerContext';
2019-12-27 09:41:53 +01:00
import ModePicker from './components/ModePicker'
import KeyTypePicker from './components/KeyTypePicker'
import WordListPicker from './components/WordListPicker';
2020-01-09 10:06:38 +01:00
import PracticeMode from './app-modes/PracticeMode';
import TrainingMode from './app-modes/TrainingMode'
2020-01-09 10:06:38 +01:00
import ChallengeMode from './app-modes/ChallengeMode'
2019-12-21 23:40:54 +01:00
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 Footer from './components/Footer';
import StraightKey from './components/StraightKey';
import ElectronicKey from './components/ElectronicKey';
export default React.memo(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-19 04:35:11 +01:00
const {keyType} = useContext(KeyTypeContext)
const {gameMode} = useContext(GameModeContext)
2020-01-19 04:35:11 +01:00
2019-12-21 23:48:36 +01:00
return (
<>
<Header />
<div id='main-content'>
2020-01-25 21:23:47 +01:00
<Legend />
2020-01-29 08:46:23 +01:00
2020-01-25 21:23:47 +01:00
<MorseBufferContextProvider>
2020-01-29 08:46:23 +01:00
<WordListPickerContextProvider>
<WordFeederContextProvider>
<div id="mainOptions">
<ModePicker />
<WordsPerMinute />
<KeyTypePicker />
{gameMode === 'challenge' &&
<WordListPicker />
}
</div>
{keyType === "straight" ?
<StraightKey /> : <ElectronicKey />
}
2020-01-25 21:23:47 +01:00
{gameMode === 'practice' &&
<PracticeMode />
2020-01-25 21:23:47 +01:00
}
2020-01-25 21:23:47 +01:00
{/* {gameMode === 'timed' &&
<>
{keyType === "straight" ?
<StraightKey gameMode='training' /> : <ElectronicKey gameMode='training' />}
<TrainingMode /><br/>
<MorseBufferDisplay /><br/>
<MorseHistory /><br/>
</>
} */}
2020-01-25 21:23:47 +01:00
{gameMode === 'challenge' &&
2020-01-29 08:46:23 +01:00
<ChallengeMode />
}
2020-01-25 21:23:47 +01:00
<MorseButtons />
2020-01-29 08:46:23 +01:00
</WordFeederContextProvider>
</WordListPickerContextProvider>
2020-01-25 21:23:47 +01:00
</MorseBufferContextProvider>
</div>
<Footer />
</>
2019-12-21 23:48:36 +01:00
);
2020-01-09 10:06:38 +01:00
})