Implemented Telegraph Key switching, resolved history clearing bug

This commit is contained in:
Gene Mecija 2020-01-17 12:23:17 -08:00
parent c777cf013c
commit b3436d963b
13 changed files with 86 additions and 120 deletions

View file

@ -1,4 +1,4 @@
import React, {useContext} from 'react';
import React, {useContext, useState} from 'react';
import './css/App.css';
import MorseButton from './components/MorseButton'
import ModePicker from './components/ModePicker'
@ -15,11 +15,20 @@ import TimedMode from './app-modes/TimedMode'
import ChallengeMode from './app-modes/ChallengeMode'
import Legend from './components/Legend';
import MorseBufferDisplay from './components/MorseBufferDisplay'
import MorseDisplay from './components/MorseDisplay'
function App() {
console.log('App.js rendered')
const {gameMode} = useContext(GameModeContext)
// const [keyType, setKeyType] = useState('straight')
// function handleClick(e) {
// setKeyType(e.target.id)
// console.log("Switched to " + e.target.id + " keyType.");
// }
return (
<div id='main-content'>
@ -29,8 +38,8 @@ function App() {
<KeyTypeContextProvider>
<KeyTypePicker />
{gameMode === 'practice' && <PracticeMode />}
{gameMode === 'timed' && <TimedMode />}
{gameMode === 'challenge' && <ChallengeMode />}
{/* {gameMode === 'timed' && <TimedMode />}
{gameMode === 'challenge' && <ChallengeMode />} */}
</KeyTypeContextProvider>
</MorseBufferContextProvider>

View file

@ -7,22 +7,15 @@ import MorseBufferDisplay from '../components/MorseBufferDisplay'
import MorseDisplay from '../components/MorseDisplay'
export default React.memo(function PracticeMode(props) {
console.log("COMPONENT LOADED: PracticeMode");
const {keyType} = useContext(KeyTypeContext)
// const [telegraphType, setTelegraphType] = useState('electronic')
export default React.memo(function PracticeMode() {
// useElectronicKey()
// const {morseCharBuffer, morseWords, clearHistory} = useStraightKey('practice')
const {keyType} = useContext(KeyTypeContext)
return (
<>
{keyType === "straight" ? <StraightKey /> : <ElectronicKey />}
<MorseBufferDisplay /><br/>
<MorseDisplay /><br/>
{/* <MorseBufferDisplay buffer={morseCharBuffer} /><br/>
<MorseDisplay morseWords={morseWords} /><br/> */}
</>
);

View file

@ -3,15 +3,23 @@ import {KeyTypeContext} from "../contexts/keyTypeContext"
export default React.memo(function KeyTypePicker() {
const {switchKeyType} = useContext(KeyTypeContext)
const {setKeyType} = useContext(KeyTypeContext)
function handleClick(e) {
switchKeyType(e.target.id)
console.log("Switched to " + e.target.id + " keyType.");
setKeyType(e.target.id)
let buttons = document.querySelector(".mode-picker#keyType").childNodes
buttons.forEach(button => {
console.log('buttonID', button.id);
if (button.id === e.target.id) {
button.classList.add('selected')
} else { button.classList.remove('selected')}
})
}
return (
<div id="mode-picker">
<div id="keyType" className="mode-picker">
<button id="straight" onClick={handleClick}>
Straight Key
</button>
@ -20,4 +28,26 @@ export default React.memo(function KeyTypePicker() {
</button>
</div>
)
})
})
// > STRAIGHT KEY SELECTED
// CONTEXT LOAD: KeyTypeContextProvider
// COMPONENT LOADED: PracticeMode
// COMPONENT LOAD: MorseBufferDisplay
// COMPONENT LOAD: MorseDisplay
// morseWords Array []
// —————————
// > ELECTRONIC KEY SELECTED
// CONTEXT LOAD: KeyTypeContextProvider
// COMPONENT LOADED: PracticeMode
// COMPONENT LOAD: MorseBufferDisplay
// COMPONENT LOAD: MorseDisplay
// morseWords Array []
// CONTEXT LOAD: MorseBufferContextProvider // MorseBufferContextProvider reloading when Electronic selected
// COMPONENT LOAD: MorseBufferDisplay
// COMPONENT LOAD: MorseDisplay
// morseWords Array []

View file

@ -11,7 +11,7 @@ function ModePicker() {
}
return (
<div id="mode-picker">
<div id="gameMode" className="mode-picker">
<button id="practice" onClick={handleClick}>
Practice
</button>

View file

@ -3,15 +3,12 @@ import DitDahDisplay from "./DitDahDisplay"
import morseCode from '../data/morse-reverse.json'
import {MorseBufferContext} from "../contexts/morseBufferContext"
function MorseBufferDisplay() {
export default React.memo(function MorseBufferDisplay() {
const {morseCharBuffer} = useContext(MorseBufferContext)
console.log('COMPONENT LOAD: MorseBufferDisplay');
let ditDahs = morseCharBuffer.split('').map((ditdah,index) => <DitDahDisplay key={index} dd={ditdah} />)
let alphanumeric = ''
// if (morseCharBuffer.includes(' ')) {
let letters = morseCharBuffer.split(' ')
if (morseCharBuffer === '') {}
@ -29,15 +26,6 @@ function MorseBufferDisplay() {
}
}
}
// } else if (morseCharBuffer !== '') {
// let letters = morseCharBuffer
// if (morseCode[letters] === undefined) {
// alphanumeric += '[?]'
// } else {
// alphanumeric += morseCode[letters]
// }
// }
return (
<div id="morseBufferDisplay">
@ -51,6 +39,4 @@ function MorseBufferDisplay() {
</div>
</div>
)
}
export default MorseBufferDisplay
})

View file

@ -2,11 +2,10 @@ import React, {useContext} from "react"
import MorseCard from './MorseCard'
import {MorseBufferContext} from "../contexts/morseBufferContext"
function MorseDisplay() {
console.log('COMPONENT LOAD: MorseDisplay');
export default (function MorseDisplay() {
const {morseWords} = useContext(MorseBufferContext)
console.log('morseWords', morseWords);
let morseCards = morseWords.map((word,index) => <MorseCard key={index} morse={word} />)
return (
@ -14,6 +13,4 @@ function MorseDisplay() {
{morseCards}
</div>
)
}
export default MorseDisplay
})

View file

@ -1,24 +1,19 @@
import React, {Component} from "react"
import React, {useState} from "react"
const KeyTypeContext = React.createContext()
class KeyTypeContextProvider extends Component {
state = {
keyType: "electronic"
}
switchKeyType = (type) => {
this.setState({keyType: type})
}
function KeyTypeContextProvider(props) {
render() {
return (
<KeyTypeContext.Provider value={{keyType: this.state.keyType, switchKeyType: this.switchKeyType}}>
{this.props.children}
</KeyTypeContext.Provider>
)
}
const [keyType, setKeyType] = useState('straight')
return (
<KeyTypeContext.Provider value={{
keyType: keyType,
setKeyType: setKeyType
}}>
{props.children}
</KeyTypeContext.Provider>
)
}
export {KeyTypeContextProvider, KeyTypeContext}

View file

@ -3,28 +3,10 @@ import React, {useState} from "react"
const MorseBufferContext = React.createContext()
function MorseBufferContextProvider(props) {
// state = {
// morseCharBuffer: '',
// morseWords: []
// //morseCharBuffer, morseWords, clearHistory, setMorseCharBuffer, setMorseWords
// }
console.log('MorseBufferContextProvider LOADED');
const [morseCharBuffer, setMorseCharBuffer] = useState('')
const [morseWords, setMorseWords] = useState([])
// switchKeyType = (type = "straight") => {
// this.setState({keyType: type})
// }
// setMorseCharBuffer = (value) => {
// this.setState({morseCharBuffer: value})
// }
// setMorseWords = (value) => {
// this.setState({morseWords: value})
// }
// render() {
return (
<MorseBufferContext.Provider value={{
morseCharBuffer: morseCharBuffer,
@ -35,8 +17,6 @@ function MorseBufferContextProvider(props) {
{props.children}
</MorseBufferContext.Provider>
)
// }
}
export {MorseBufferContextProvider, MorseBufferContext}

View file

@ -5,7 +5,7 @@ html, body {
width: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
background: #444;
background: #FFF;
}
#root {
@ -22,7 +22,7 @@ html, body {
width: 100%;
}
#mode-picker {
.mode-picker {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@ -30,7 +30,7 @@ html, body {
align-self: center;
}
#mode-picker button {
.mode-picker button {
background: #fcfcfc;
margin: 15px;
padding: 5px;
@ -40,6 +40,11 @@ html, body {
border-radius: 0px;
}
.mode-picker .selected {
-webkit-box-shadow: 0px -6px 10px white, 0px 4px 15px rgba(0, 0, 0, 0.15);
box-shadow: 0px -6px 10px white, 0px 4px 15px rgba(0, 0, 0, 0.15);
}
#legend {
width: 450px;
display: -webkit-box;

View file

@ -1,6 +1,6 @@
{
"version": 3,
"mappings": "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",
"mappings": "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",
"sources": [
"../scss/App.scss"
],

View file

@ -238,7 +238,6 @@ function useElectronicKey() {
else { stopDepressSyncTimer() }
}
}
function startDepressSyncTimer() {
depressSyncTimerRunning = true
@ -264,40 +263,11 @@ function useElectronicKey() {
}
depressSyncTime = 0
}
// function startGapTimer() {
// gapTime = 0
// gapTimer = setInterval(() => {
// gapTime += 1
// // Gap between words
// if (mode === 'practice' && gapTime >= wordGapMaxTime) {
// setMorseCharBuffer(prev => prev + '/')
// clearInterval(gapTimer)
// gapTimer = 0
// gapTime = 0
// }
// if (mode === 'challenge' && gapTime >= letterGapMinTime) {
// setMorseCharBuffer(prev => prev + '_')
// clearInterval(gapTimer)
// gapTimer = 0
// gapTime = 0
// }
// }, timingUnit);
// }
function checkGapBetweenInputs() {
// Check Gap between letters
// console.log('gapTime', gapTime);
// console.log('letterGapMinTime', letterGapMinTime);
// console.log('wordGapMaxTime', wordGapMaxTime);
if (gapTime >= letterGapMinTime && gapTime < wordGapMaxTime) {
// console.log('letterGapMinTime <= gapTime < wordGapMaxTime:',letterGapMinTime, gapTime, wordGapMaxTime);
// if (mode === 'practice') {
setMorseCharBuffer(prev => prev + ' ')
gapTime = 0
// } else if (mode === 'challenge') {
// console.log("UNDERSCORE ADDED");
// setMorseCharBuffer(prev => prev + '_')
// }
clearInterval(gapTimer)
gapTimer = 0
}
@ -341,7 +311,6 @@ function useElectronicKey() {
// eslint-disable-next-line
}, [morseCharBuffer])
return {morseCharBuffer, morseWords, setMorseCharBuffer, setMorseWords}
}
export default useElectronicKey

View file

@ -5,7 +5,7 @@ import config from '../config.json'
// STRAIGHT KEY TELEGRAPH
function useStraightKey() {
const {morseCharBuffer, setMorseCharBuffer, morseWords, setMorseWords} = useContext(MorseBufferContext)
let charTimer = 0
@ -172,7 +172,7 @@ function useStraightKey() {
morseButton.removeEventListener('touchstart', handleInputStart)
morseButton.removeEventListener('mouseup', handleInputEnd)
morseButton.removeEventListener('touchend', handleInputEnd)
clearHistory()
// clearHistory()
}
// eslint-disable-next-line
}, [])
@ -198,7 +198,6 @@ function useStraightKey() {
// eslint-disable-next-line
}, [morseCharBuffer])
return {morseCharBuffer, morseWords, clearHistory, setMorseCharBuffer, setMorseWords}
}
export default useStraightKey

View file

@ -1,7 +1,7 @@
$main-bg-color: #FFF;
$main-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
$main-border-radius: 0px;
// $border-radius-neumorphic: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 15px rgba(0, 0, 0, 0.15);
$border-radius-neumorphic: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 15px rgba(0, 0, 0, 0.15);
html, body {
margin: 0px;
@ -9,8 +9,8 @@ html, body {
height: 100%;
width: 100%;
box-sizing: border-box;
// background: $main-bg-color;
background: #444
background: $main-bg-color;
// background: #444
}
#root {
height: 100%;
@ -19,7 +19,7 @@ html, body {
align-items: center;
width: 100%;
}
#mode-picker {
.mode-picker {
display: flex;
align-self: center;
button {
@ -30,6 +30,9 @@ html, body {
border: 0px;
border-radius: $main-border-radius;
}
.selected {
box-shadow: $border-radius-neumorphic;
}
}
#legend {