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

66 lines
2.3 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 19:26:55 +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
// }
2020-01-19 19:26:55 +01:00
// const {morseCharBuffer, setMorseCharBuffer} = useContext(MorseBufferContext)
2020-01-21 11:04:46 +01:00
const morseArray = props.morseArray
let incorrectMorseIndexes = props.incorrectMorseIndexes
console.log('morseArray', morseArray);
2020-01-10 09:56:38 +01:00
let ditDahs = []
2020-01-21 11:04:46 +01:00
let alphanumeric = []
2020-01-20 19:27:05 +01:00
2020-01-10 09:56:38 +01:00
2020-01-21 11:04:46 +01:00
for (let i in morseArray) {
let morseChar = morseArray[i]
2020-01-20 19:27:05 +01:00
2020-01-21 11:04:46 +01:00
// Alphanumeric
let alphaClass = (incorrectMorseIndexes.includes(Number(i))) ? 'strike' : ''
alphanumeric.push(<span className={alphaClass}>{morseCode[morseChar].toUpperCase()}</span>)
// DitDahs
console.log('>>> incorrectMorseIndexes', incorrectMorseIndexes);
let ditDahClass = (incorrectMorseIndexes.includes(Number(i))) ? 'morseError' : ''
ditDahs.push(<span className={ditDahClass}>{morseChar}</span>)
2020-01-20 19:27:05 +01:00
ditDahs.push(<span className='space'>&nbsp;</span>)
}
2020-01-21 11:04:46 +01:00
// if (incorrectIndex) {
// setTimeout(() => {
// setMorseCharBuffer(prev => prev.slice(0,prev.length-2))
// }, 500)
// }
2020-01-10 09:56:38 +01:00
return (
<div id="challengeBufferDisplay">
<div id="alphanumeric-container">
<div id="alphanumeric">
2020-01-21 11:04:46 +01:00
{alphanumeric}
2020-01-10 09:56:38 +01:00
</div>
</div>
2020-01-19 19:26:55 +01:00
<div id="ditDahs">
{ditDahs}
</div>
2020-01-10 09:56:38 +01:00
</div>
)
}
export default React.memo(ChallengeBufferDisplay)