From 20cf1aa3df3c39c5bac17448fc154a03a62d39f9 Mon Sep 17 00:00:00 2001 From: Gene Mecija Date: Fri, 10 Jan 2020 00:56:38 -0800 Subject: [PATCH] Challenge mode functionality progress --- src/app-modes/ChallengeMode.js | 1 + src/components/ChallengeBufferDisplay.js | 73 ++++++++++++++++++++++++ src/components/ChallengeDisplay.js | 20 +++++-- src/components/DitDahDisplay.js | 2 +- src/css/App.css | 12 ++-- src/css/App.css.map | 2 +- src/hooks/useTelegraph.js | 19 ++++-- src/scss/App.scss | 2 +- 8 files changed, 111 insertions(+), 20 deletions(-) create mode 100644 src/components/ChallengeBufferDisplay.js diff --git a/src/app-modes/ChallengeMode.js b/src/app-modes/ChallengeMode.js index c6263d3..bbac29b 100644 --- a/src/app-modes/ChallengeMode.js +++ b/src/app-modes/ChallengeMode.js @@ -12,6 +12,7 @@ function ChallengeMode() { return ( <> + ); diff --git a/src/components/ChallengeBufferDisplay.js b/src/components/ChallengeBufferDisplay.js new file mode 100644 index 0000000..f423eee --- /dev/null +++ b/src/components/ChallengeBufferDisplay.js @@ -0,0 +1,73 @@ +import React from "react" +import DitDahDisplay from "./DitDahDisplay" +import morseCode from '../data/morse-reverse.json' + +function ChallengeBufferDisplay(props) { + + let ditDahs = [] + let incorrectIndex = props.incorrectIndex + + let morseLetters = props.buffer.split(' ') + if (incorrectIndex) { + console.log('incorrectIndex:', incorrectIndex); + for (let i in morseLetters) { + let letter = morseLetters[i] + + if (Number(i) === incorrectIndex) { + ditDahs.push(letter.split('').map((ditdah,index) => )) + } else { + console.log('i === incorrectIndex', i, incorrectIndex); + ditDahs.push(letter.split('').map((ditdah,index) => )) + } + } + } else { + ditDahs = props.buffer.split('').map((ditdah,index) => ) + console.log('ditDahs:', typeof ditDahs, ditDahs.length, ditDahs); + } + + + let alphanumeric = '' + // 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] + // } + // } + + return ( +
+
+ {ditDahs} +
+
+
+ {alphanumeric.toUpperCase()} +
+
+
+ ) +} + +export default React.memo(ChallengeBufferDisplay) \ No newline at end of file diff --git a/src/components/ChallengeDisplay.js b/src/components/ChallengeDisplay.js index dd5368a..89af411 100644 --- a/src/components/ChallengeDisplay.js +++ b/src/components/ChallengeDisplay.js @@ -1,15 +1,16 @@ import React from "react" // import DitDahDisplay from "./DitDahDisplay" import morseCode from '../data/morse-reverse.json' -import MorseBufferDisplay from "./MorseBufferDisplay"; +import ChallengeBufferDisplay from "./ChallengeBufferDisplay"; // import ChallengeWord from "./ChallengeWord"; function ChallengeDisplay(props) { console.log('props.buffer:', props.buffer, '|END'); - let morseLetters = props.buffer.split(' ') + let morseLetters = props.buffer.split('_').filter(l => l !== '') console.log('morseLetters:', morseLetters, morseLetters.length); let challengeLetters = props.word.split('') let correctIndexes = [] + let incorrectIndex = null morseLetters.forEach((morseLetter, index) => { let morseAlpha = morseCode[morseLetter] @@ -19,8 +20,12 @@ function ChallengeDisplay(props) { correctIndexes.push(index) console.log('MATCH', correctIndexes); } else { - console.log('MISMATCH: should be', challengeLetter, 'instead of', morseAlpha); - + if (props.buffer.slice(-1) === "_") { + incorrectIndex = index + console.log('MISMATCH:', incorrectIndex, 'should be', challengeLetter, 'instead of', morseAlpha, '>', morseLetter); + // props.setMorseCharBuffer(morseLetters.slice(0,-1).join('_') + '_') + } + } // else { // let onlyCorrectMorse = morseLetters.splice(0,index+1).join(' ') @@ -49,10 +54,13 @@ function ChallengeDisplay(props) { // } // } + let spannedWord = challengeLetters.map((letter,index) => { // console.log('correctIndexes',correctIndexes); // console.log('index',index); - let className = (correctIndexes.includes(index)) ? 'cLetter correct' : 'cLetter' + let className = 'cLetter' + className += (correctIndexes.includes(index)) ? ' correct' : '' + className += (incorrectIndex === index) ? ' morseError' : '' return ( {letter} ) @@ -63,7 +71,7 @@ function ChallengeDisplay(props) { return ( <>
{spannedWord}
- + ) } diff --git a/src/components/DitDahDisplay.js b/src/components/DitDahDisplay.js index b521e06..fe9d521 100644 --- a/src/components/DitDahDisplay.js +++ b/src/components/DitDahDisplay.js @@ -2,7 +2,7 @@ import React from "react" function DitDahDisplay(props) { return ( -
+
{props.dd}
) diff --git a/src/css/App.css b/src/css/App.css index 91dc0b8..8db981a 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -90,7 +90,7 @@ html, body { align-self: center; } -#morseBufferDisplay { +#morseBufferDisplay, #challengeBufferDisplay { display: -webkit-box; display: -ms-flexbox; display: flex; @@ -102,7 +102,7 @@ html, body { margin-bottom: 20px; } -#morseBufferDisplay #ditDahs { +#morseBufferDisplay #ditDahs, #challengeBufferDisplay #ditDahs { width: 50%; padding-right: 5px; border-right: 2px solid #000; @@ -118,7 +118,7 @@ html, body { justify-content: flex-end; } -#morseBufferDisplay #ditDahs .ditDah { +#morseBufferDisplay #ditDahs .ditDah, #challengeBufferDisplay #ditDahs .ditDah { background: #DDD; height: 40px; width: 30px !important; @@ -140,7 +140,7 @@ html, body { font-weight: bold; } -#morseBufferDisplay #alphanumeric-container { +#morseBufferDisplay #alphanumeric-container, #challengeBufferDisplay #alphanumeric-container { border-left: 2px solid #000; padding-left: 5px; width: 50%; @@ -149,14 +149,14 @@ html, body { display: flex; } -#morseBufferDisplay #alphanumeric-container #alphanumeric { +#morseBufferDisplay #alphanumeric-container #alphanumeric, #challengeBufferDisplay #alphanumeric-container #alphanumeric { font-size: 40px; font-family: 'Courier'; font-weight: bold; background-color: transparent; } -#morseBufferDisplay #alphanumeric-container #alphanumeric:first-child { +#morseBufferDisplay #alphanumeric-container #alphanumeric:first-child, #challengeBufferDisplay #alphanumeric-container #alphanumeric:first-child { padding-left: 5px; padding-right: 5px; } diff --git a/src/css/App.css.map b/src/css/App.css.map index a781edb..7e52b8d 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 55ed74f..6483439 100644 --- a/src/hooks/useTelegraph.js +++ b/src/hooks/useTelegraph.js @@ -98,21 +98,30 @@ function useTelegraph(mode = 'practice') { gapTime += 1 // Gap between words - if (gapTime >= wordGapMaxTime && mode === 'practice') { + 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 - if ((gapTime >= letterGapMinTime) && - ((gapTime < wordGapMaxTime) || (mode === 'challenge'))) { // Practice mode || Challenge mode - setMorseCharBuffer(prev => prev + ' ') + if (gapTime >= letterGapMinTime && gapTime < wordGapMaxTime) { + if (mode === 'practice') { + setMorseCharBuffer(prev => prev + ' ') + } else if (mode === 'challenge') { + setMorseCharBuffer(prev => prev + '_') + } clearInterval(gapTimer) gapTimer = 0 } @@ -149,7 +158,7 @@ function useTelegraph(mode = 'practice') { } setMorseCharBuffer('') } - + console.log('morseCharBuffer:', morseCharBuffer, '|'); // CHALLENGE MODE: leave forward slash there; to be parsed by ChallengeDisplay.js // else if (morseCharBuffer.slice(-1) === '/' && mode === 'challenge') { diff --git a/src/scss/App.scss b/src/scss/App.scss index df83352..17c5439 100644 --- a/src/scss/App.scss +++ b/src/scss/App.scss @@ -63,7 +63,7 @@ html, body { text-transform: uppercase; align-self: center; } -#morseBufferDisplay { +#morseBufferDisplay, #challengeBufferDisplay { display: flex; justify-content: center; // border: 1px solid green;