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

42 lines
1.3 KiB
JavaScript
Raw Normal View History

import React, { useContext, useEffect } from "react"
2019-12-21 23:48:36 +01:00
import DitDahDisplay from "./DitDahDisplay"
import morseCode from '../data/morse-reverse.json'
import {MorseBufferContext} from "../contexts/morseBufferContext"
2019-12-21 23:48:36 +01:00
export default React.memo(function MorseBufferDisplay() {
const {morseCharBuffer} = useContext(MorseBufferContext)
let ditDahs = morseCharBuffer.split('').map((ditdah,index) => <DitDahDisplay key={index} dd={ditdah} />)
2019-12-21 23:48:36 +01:00
let alphanumeric = ''
let letters = morseCharBuffer.split(' ')
2020-01-10 03:24:54 +01:00
if (morseCharBuffer === '') {}
2020-01-10 03:24:54 +01:00
else {
2019-12-21 23:48:36 +01:00
for (let i in letters) {
if (letters[i] === ' ') {
alphanumeric += ' '
} else {
if (morseCode[letters[i]] === undefined) {
// alphanumeric += '[?]'
2020-01-10 03:24:54 +01:00
alphanumeric += (letters[i] === '' ? '':'[?]')
2019-12-21 23:48:36 +01:00
} else {
alphanumeric += morseCode[letters[i]]
}
}
}
}
return (
<div id="morseBufferDisplay">
<div id="ditDahs">
{ditDahs}
</div>
2020-01-03 08:53:56 +01:00
<div id="alphanumeric-container">
<div id="alphanumeric">
{alphanumeric.toUpperCase()}
</div>
2019-12-21 23:48:36 +01:00
</div>
</div>
)
})