2020-01-19 04:35:11 +01:00
|
|
|
import React, { useContext } from "react"
|
2020-01-10 09:56:38 +01:00
|
|
|
import DitDahDisplay from "./DitDahDisplay"
|
|
|
|
|
import morseCode from '../data/morse-reverse.json'
|
2020-01-19 04:35:11 +01:00
|
|
|
import { MorseBufferContext } from "../contexts/morseBufferContext"
|
2020-01-10 09:56:38 +01:00
|
|
|
|
|
|
|
|
function ChallengeBufferDisplay(props) {
|
2020-01-13 09:03:58 +01:00
|
|
|
|
2020-01-19 04:35:11 +01:00
|
|
|
// // INCREMENTING COUNTER TO MONITOR COMPONENT RELOADING
|
|
|
|
|
// // console.log('ChallengeMode')
|
|
|
|
|
// if (!document.getElementById('counter')) {
|
|
|
|
|
// let counter = document.createElement('h1')
|
|
|
|
|
// let holder = document.createElement('h3')
|
|
|
|
|
// counter.id = 'counter'
|
|
|
|
|
// holder.id = 'holder'
|
|
|
|
|
// counter.innerText = "0"
|
|
|
|
|
// document.querySelector('#main-content').appendChild(counter)
|
|
|
|
|
// document.querySelector('#main-content').appendChild(holder)
|
|
|
|
|
// } else {
|
|
|
|
|
// let num = document.getElementById('counter').innerText
|
|
|
|
|
// document.getElementById('counter').innerText = Number(num) + 1
|
|
|
|
|
// document.getElementById('holder').innerText = buffer
|
|
|
|
|
// }
|
|
|
|
|
const {morseCharBuffer} = useContext(MorseBufferContext)
|
|
|
|
|
|
|
|
|
|
let buffer = morseCharBuffer.slice(0,-1).replace(/_/g, ' ')
|
|
|
|
|
console.log('buffer', buffer);
|
2020-01-13 09:03:58 +01:00
|
|
|
|
2020-01-10 09:56:38 +01:00
|
|
|
let ditDahs = []
|
|
|
|
|
let incorrectIndex = props.incorrectIndex
|
|
|
|
|
|
2020-01-19 04:35:11 +01:00
|
|
|
let morseLetters = buffer.split(' ')
|
2020-01-10 09:56:38 +01:00
|
|
|
if (incorrectIndex) {
|
2020-01-13 09:03:58 +01:00
|
|
|
|
2020-01-10 09:56:38 +01:00
|
|
|
for (let i in morseLetters) {
|
|
|
|
|
let letter = morseLetters[i]
|
|
|
|
|
|
|
|
|
|
if (Number(i) === incorrectIndex) {
|
|
|
|
|
ditDahs.push(letter.split('').map((ditdah,index) => <DitDahDisplay key={index} dd={ditdah} className={"morseError"}/>))
|
|
|
|
|
} else {
|
|
|
|
|
ditDahs.push(letter.split('').map((ditdah,index) => <DitDahDisplay key={index} dd={ditdah} className={""}/>))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
2020-01-19 04:35:11 +01:00
|
|
|
ditDahs = buffer.split('').map((ditdah,index) => <DitDahDisplay key={index} dd={ditdah} />)
|
2020-01-10 09:56:38 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let alphanumeric = ''
|
2020-01-19 04:35:11 +01:00
|
|
|
let letters = buffer.split(' ')
|
2020-01-10 09:56:38 +01:00
|
|
|
|
2020-01-19 04:35:11 +01:00
|
|
|
if (buffer === '') {}
|
2020-01-10 09:56:38 +01:00
|
|
|
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]]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-19 04:35:11 +01:00
|
|
|
// } else if (buffer !== '') {
|
|
|
|
|
// let letters = buffer
|
2020-01-10 09:56:38 +01:00
|
|
|
// if (morseCode[letters] === undefined) {
|
|
|
|
|
// alphanumeric += '[?]'
|
|
|
|
|
// } else {
|
|
|
|
|
// alphanumeric += morseCode[letters]
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div id="challengeBufferDisplay">
|
|
|
|
|
<div id="ditDahs">
|
|
|
|
|
{ditDahs}
|
|
|
|
|
</div>
|
|
|
|
|
<div id="alphanumeric-container">
|
|
|
|
|
<div id="alphanumeric">
|
|
|
|
|
{alphanumeric.toUpperCase()}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default React.memo(ChallengeBufferDisplay)
|