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

52 lines
1.5 KiB
JavaScript
Raw Normal View History

import React, { useContext } from "react"
2020-01-14 11:37:04 +01:00
import morseCode from '../data/morse-code.json'
import useMorsePlayer from "../hooks/useMorsePlayer";
import { WPMContext } from "../contexts/wpmContext.js";
2020-01-14 11:37:04 +01:00
function Legend() {
const { playMorseWord } = useMorsePlayer()
function handleClick(e) {
e.preventDefault()
let word = e.target.innerHTML
let newWord = convertWordToMorse(word)
console.log(newWord);
playMorseWord(newWord)
2020-01-14 11:37:04 +01:00
}
2020-01-15 09:41:40 +01:00
2020-01-14 11:37:04 +01:00
function convertWordToMorse(word) {
let morse = ''
for (let i in word) {
morse += morseCode[word[i].toLowerCase()]
morse += ' '
}
return morse
}
2020-01-15 09:41:40 +01:00
const legend = Object.keys(morseCode).map((morse, index) =>
2020-01-31 10:45:12 +01:00
<div key={"legend_item_"+index} className="item">
2020-01-15 09:41:40 +01:00
<button key={"legend_btn_"+index} onClick={handleClick}>{morse.toUpperCase()}</button>
<span key={"legend_spn_"+index}>{morseCode[morse]}</span>
</div>
)
2020-01-14 11:37:04 +01:00
return (
<div id="legend">
2020-01-31 10:45:12 +01:00
<div id="title">
<h2>Legend</h2>
</div>
<div id="legend-items">
{legend}
<div>
<button id="test" onClick={handleClick}>Anya</button>
<button id="test" onClick={handleClick}>Alexandra</button>
<button id="test" onClick={handleClick}>Paris</button>
</div>
</div>
2020-01-14 11:37:04 +01:00
</div>
)
}
export default React.memo(Legend)