2020-01-22 07:58:35 +01:00
|
|
|
import React from "react"
|
2020-01-10 09:56:38 +01:00
|
|
|
import morseCode from '../data/morse-reverse.json'
|
|
|
|
|
|
2020-01-22 07:58:35 +01:00
|
|
|
export default React.memo(function ChallengeBufferDisplay(props) {
|
2020-01-13 09:03:58 +01:00
|
|
|
|
2020-01-21 11:04:46 +01:00
|
|
|
const morseArray = props.morseArray
|
|
|
|
|
let incorrectMorseIndexes = props.incorrectMorseIndexes
|
|
|
|
|
|
2020-01-10 09:56:38 +01:00
|
|
|
let ditDahs = []
|
2020-01-21 11:04:46 +01:00
|
|
|
let alphanumeric = []
|
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
|
2020-01-22 07:58:35 +01:00
|
|
|
let alpha = morseCode[morseChar] || '[?]'
|
2020-01-21 12:43:21 +01:00
|
|
|
let alphaClass = (incorrectMorseIndexes.includes(Number(i))) ? 'strike morseError' : ''
|
2020-01-22 07:58:35 +01:00
|
|
|
alphanumeric.push(<span key={i} className={alphaClass}>{alpha.toUpperCase()}</span>)
|
2020-01-21 11:04:46 +01:00
|
|
|
|
|
|
|
|
// DitDahs
|
|
|
|
|
let ditDahClass = (incorrectMorseIndexes.includes(Number(i))) ? 'morseError' : ''
|
2020-01-22 07:58:35 +01:00
|
|
|
ditDahs.push(<span key={i} className={ditDahClass}>{morseChar}</span>)
|
2020-01-28 02:39:11 +01:00
|
|
|
// ditDahs.push(<span key={i+100} className='space'> </span>)
|
2020-01-20 19:27:05 +01:00
|
|
|
}
|
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>
|
|
|
|
|
)
|
2020-01-22 07:58:35 +01:00
|
|
|
})
|