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

38 lines
1.2 KiB
JavaScript
Raw Normal View History

import React from "react"
2020-01-10 09:56:38 +01:00
import morseCode from '../data/morse-reverse.json'
export default React.memo(function ChallengeBufferDisplay(props) {
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
let alpha = morseCode[morseChar] || '[?]'
2020-01-21 12:43:21 +01:00
let alphaClass = (incorrectMorseIndexes.includes(Number(i))) ? 'strike morseError' : ''
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' : ''
ditDahs.push(<span key={i} className={ditDahClass}>{morseChar}</span>)
// ditDahs.push(<span key={i+100} className='space'>&nbsp;</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>
)
})