learn-morse-code/src/components/ChallengeBufferDisplay.js

90 lines
2.9 KiB
JavaScript
Raw Normal View History

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-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-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-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)