diff --git a/src/app-modes/ChallengeMode.js b/src/app-modes/ChallengeMode.js index b3e3871..c6263d3 100644 --- a/src/app-modes/ChallengeMode.js +++ b/src/app-modes/ChallengeMode.js @@ -1,19 +1,17 @@ import React from 'react'; import '../css/App.css'; import useTelegraph from '../hooks/useTelegraph'; -import ChallengeWord from '../components/ChallengeWord' -import MorseBufferDisplay from '../components/MorseBufferDisplay' +// import ChallengeWord from '../components/ChallengeWord' +// import MorseBufferDisplay from '../components/MorseBufferDisplay' +import ChallengeDisplay from '../components/ChallengeDisplay'; function ChallengeMode() { - const {morseCharBuffer} = useTelegraph('challenge') - - console.log('ChallengeMode.js rendered') + const {morseCharBuffer, setMorseCharBuffer} = useTelegraph('challenge') return ( <> - -
+ ); diff --git a/src/app-modes/PracticeMode.js b/src/app-modes/PracticeMode.js index fbd46a1..843dd10 100644 --- a/src/app-modes/PracticeMode.js +++ b/src/app-modes/PracticeMode.js @@ -1,4 +1,4 @@ -import React, {useEffect} from 'react'; +import React from 'react'; import '../css/App.css'; import useTelegraph from '../hooks/useTelegraph'; import MorseBufferDisplay from '../components/MorseBufferDisplay' @@ -6,9 +6,7 @@ import MorseDisplay from '../components/MorseDisplay' function PracticeMode() { - const {morseCharBuffer, morseWords, clearHistory} = useTelegraph() - - console.log('PracticeMode.js rendered') + const {morseCharBuffer, morseWords, clearHistory} = useTelegraph('practice') return ( <> diff --git a/src/app-modes/TimedMode.js b/src/app-modes/TimedMode.js index 3e568cc..16d4df4 100644 --- a/src/app-modes/TimedMode.js +++ b/src/app-modes/TimedMode.js @@ -7,7 +7,7 @@ import MorseDisplay from '../components/MorseDisplay' function TimedMode() { - const {morseCharBuffer, morseWords} = useTelegraph() + const {morseCharBuffer, morseWords} = useTelegraph('timed') console.log('TimedMode.js rendered') diff --git a/src/components/ChallengeDisplay.js b/src/components/ChallengeDisplay.js new file mode 100644 index 0000000..dd5368a --- /dev/null +++ b/src/components/ChallengeDisplay.js @@ -0,0 +1,71 @@ +import React from "react" +// import DitDahDisplay from "./DitDahDisplay" +import morseCode from '../data/morse-reverse.json' +import MorseBufferDisplay from "./MorseBufferDisplay"; +// import ChallengeWord from "./ChallengeWord"; + +function ChallengeDisplay(props) { + console.log('props.buffer:', props.buffer, '|END'); + let morseLetters = props.buffer.split(' ') + console.log('morseLetters:', morseLetters, morseLetters.length); + let challengeLetters = props.word.split('') + let correctIndexes = [] + + morseLetters.forEach((morseLetter, index) => { + let morseAlpha = morseCode[morseLetter] + let challengeLetter = challengeLetters[index].toLowerCase() + + if (morseAlpha === challengeLetter) { + correctIndexes.push(index) + console.log('MATCH', correctIndexes); + } else { + console.log('MISMATCH: should be', challengeLetter, 'instead of', morseAlpha); + + } + // else { + // let onlyCorrectMorse = morseLetters.splice(0,index+1).join(' ') + // props.setMorseCharBuffer(onlyCorrectMorse) + // } + }) + // for (let i in morseLetters) { + + // let morseLetter = morseLetters[i].slice(-1) === '/' ? + // morseLetters[i].slice(0,morseLetters[i].length-1) : morseLetters[i] + // let challengeLetter = challengeLetters[i].toLowerCase() + // let endOfMorseLetter = morseLetter.includes('/') + // let morseAlpha = morseCode[morseLetter] + + // if (challengeLetter === morseAlpha && endOfMorseLetter) { + // correctIndexes.push(i) + // console.log('CORRECT!!', `"${morseAlpha}"`); + // morseLetters[i] = morseLetters[i].slice(0,morseLetters[i].length-1) + // console.log(morseLetters); + // props.setMorseCharBuffer(morseLetters.join(' ')) + // } + // else if (challengeLetter !== morseAlpha && endOfMorseLetter) { + // console.log('WRONG!!', `"${morseLetter}"`) + // // Rejoin morse characters except the last wrong character + // props.setMorseCharBuffer(morseLetters.slice(0,morseLetters.length-1).join(' ')) + // } + // } + + let spannedWord = challengeLetters.map((letter,index) => { + // console.log('correctIndexes',correctIndexes); + // console.log('index',index); + let className = (correctIndexes.includes(index)) ? 'cLetter correct' : 'cLetter' + return ( + {letter} + ) + }) + + + + return ( + <> +
{spannedWord}
+ + + ) +} + +export default React.memo(ChallengeDisplay) \ No newline at end of file diff --git a/src/components/ChallengeWord.js b/src/components/ChallengeWord.js index 19647bf..84571ae 100644 --- a/src/components/ChallengeWord.js +++ b/src/components/ChallengeWord.js @@ -1,9 +1,6 @@ import React from "react" function ChallengeWord(props) { - console.log('ChallengeWord rendered'); - - let spannedWord = props.word.split('').map((letter,index) => {letter}) return (
{spannedWord}
diff --git a/src/components/DitDahDisplay.js b/src/components/DitDahDisplay.js index 12adb66..b521e06 100644 --- a/src/components/DitDahDisplay.js +++ b/src/components/DitDahDisplay.js @@ -1,7 +1,6 @@ import React from "react" function DitDahDisplay(props) { - console.log('DitDahDisplay rendered'); return (
{props.dd} diff --git a/src/components/MorseBufferDisplay.js b/src/components/MorseBufferDisplay.js index 9324eb0..09b75cf 100644 --- a/src/components/MorseBufferDisplay.js +++ b/src/components/MorseBufferDisplay.js @@ -3,31 +3,38 @@ import DitDahDisplay from "./DitDahDisplay" import morseCode from '../data/morse-reverse.json' function MorseBufferDisplay(props) { - console.log('MorseBufferDisplay rendered'); + let ditDahs = props.buffer.split('').map((ditdah,index) => ) let alphanumeric = '' - if (props.buffer.includes(' ')) { - let letters = props.buffer.split(' ') + // if (props.buffer.includes(' ')) { + + let letters = props.buffer.split(' ') + + if (props.buffer === '') {} + else { for (let i in letters) { if (letters[i] === ' ') { alphanumeric += ' ' } else { if (morseCode[letters[i]] === undefined) { // alphanumeric += '[?]' + alphanumeric += (letters[i] === '' ? '':'[?]') } else { alphanumeric += morseCode[letters[i]] } } } - } else if (props.buffer !== '') { - let letters = props.buffer - if (morseCode[letters] === undefined) { - alphanumeric += '[?]' - } else { - alphanumeric += morseCode[letters] - } } + + // } else if (props.buffer !== '') { + // let letters = props.buffer + // if (morseCode[letters] === undefined) { + // alphanumeric += '[?]' + // } else { + // alphanumeric += morseCode[letters] + // } + // } return (
diff --git a/src/components/MorseButton.js b/src/components/MorseButton.js index 1cba5f6..8727407 100644 --- a/src/components/MorseButton.js +++ b/src/components/MorseButton.js @@ -1,7 +1,6 @@ import React from "react" function MorseButton() { - console.log('MorseButton rendered'); return (
) diff --git a/src/components/MorseDisplay.js b/src/components/MorseDisplay.js index 6affd9b..0eee78b 100644 --- a/src/components/MorseDisplay.js +++ b/src/components/MorseDisplay.js @@ -2,7 +2,6 @@ import React from "react" import MorseCard from './MorseCard' function MorseDisplay(props) { - console.log('MorseDisplay rendered'); let morseCards = props.morseWords.map((word,index) => ) return ( diff --git a/src/css/App.css b/src/css/App.css index 9bcbe52..91dc0b8 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -171,6 +171,11 @@ html, body { border-radius: 5px; } +.correct { + background: rgba(0, 255, 0, 0.4); + border-radius: 5px; +} + #morseDisplay { /* border: 1px solid blue; */ display: -webkit-box; diff --git a/src/css/App.css.map b/src/css/App.css.map index a4c3262..a781edb 100644 --- a/src/css/App.css.map +++ b/src/css/App.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "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", + "mappings": "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", "sources": [ "../scss/App.scss" ], diff --git a/src/hooks/useTelegraph.js b/src/hooks/useTelegraph.js index d56fae7..55ed74f 100644 --- a/src/hooks/useTelegraph.js +++ b/src/hooks/useTelegraph.js @@ -109,7 +109,9 @@ function useTelegraph(mode = 'practice') { function checkGapBetweenInputs() { // Check Gap between letters - if ((gapTime >= letterGapMinTime) && (gapTime < wordGapMaxTime)) { + + if ((gapTime >= letterGapMinTime) && + ((gapTime < wordGapMaxTime) || (mode === 'challenge'))) { // Practice mode || Challenge mode setMorseCharBuffer(prev => prev + ' ') clearInterval(gapTimer) gapTimer = 0 @@ -129,24 +131,29 @@ function useTelegraph(mode = 'practice') { return function cleanup() { document.removeEventListener('keydown', handleInputStart) document.removeEventListener('keyup', handleInputEnd) + clearHistory() } // eslint-disable-next-line }, []) useEffect(() => { - if (morseCharBuffer.slice(-1) === '/') { + // PRACTICE MODE + if (morseCharBuffer.slice(-1) === '/' && mode === 'practice') { // Remove forward slash let val = morseCharBuffer.slice(0,morseCharBuffer.length-1) - console.log('val: ', val); setMorseWords(prev => [val, ...prev]) if (morseWords.length >= morseHistorySize) { setMorseWords(prev => prev.slice(0,prev.length-1)) } - setMorseCharBuffer('') } + + // CHALLENGE MODE: leave forward slash there; to be parsed by ChallengeDisplay.js + // else if (morseCharBuffer.slice(-1) === '/' && mode === 'challenge') { + + // } // eslint-disable-next-line }, [morseCharBuffer]) diff --git a/src/scss/App.scss b/src/scss/App.scss index acf4f19..df83352 100644 --- a/src/scss/App.scss +++ b/src/scss/App.scss @@ -125,6 +125,11 @@ html, body { color: rgb(120, 0, 0); border-radius: 5px; } +.correct { + background: rgba(0,255,0,0.4); + // color: rgb(120, 0, 0); + border-radius: 5px; +} #morseDisplay { /* border: 1px solid blue; */