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

70 lines
2.6 KiB
JavaScript
Raw Normal View History

import React, {useContext} from "react"
import { WordListPickerContext } from "../contexts/wordListPickerContext";
import { WordFeederContext } from "../contexts/wordFeederContext";
export default React.memo(function WordListPicker() {
2020-01-29 08:46:23 +01:00
const {wordListCategory, setWordListCategory} = useContext(WordListPickerContext)
const {resetFeeder, setOrder} = useContext(WordFeederContext)
const orderOpts = ['sequential', 'random']
function handleClick(e) {
resetFeeder()
if (orderOpts.includes(e.target.id)) {
2020-01-29 08:46:23 +01:00
let buttons = document.querySelector(".mode-picker#wordOrderPicker #buttons").childNodes
buttons.forEach(button => {
if (button.id === e.target.id) {
button.classList.add('selected')
} else { button.classList.remove('selected')}
})
setOrder(e.target.id)
} else {
2020-01-29 08:46:23 +01:00
setWordListCategory(e.target.value)
console.log("Switched to " + e.target.value + " word list.");
}
}
return (
<>
<div id="wordListPicker" className="mode-picker">
2020-01-29 08:46:23 +01:00
<div id="title">
Word List
</div>
<div id="input">
<select id="wordlist-picker" defaultValue={wordListCategory} onChange={handleClick}>
2020-01-29 08:46:23 +01:00
<option value="alphabet">Alphabet</option>
<option value="common100">100 Most Common Words</option>
<option value="test">Test List</option>
</select>
</div>
{/* <div id="buttons">
<button id="alphabet" class="selected" onClick={handleClick}>
Alphabet
</button>
<button id="common100" onClick={handleClick}>
100 Most Common Words
</button>
<button id="test" onClick={handleClick}>
Test List
</button>
</div> */}
</div>
<div id="wordOrderPicker" className="mode-picker">
2020-01-29 08:46:23 +01:00
<div id="title">
Word Order
</div>
<div id="buttons">
<button id="sequential" className="selected" onClick={handleClick}>
2020-01-29 08:46:23 +01:00
Sequential
</button>
<button id="random" onClick={handleClick}>
Random
</button>
</div>
</div>
</>
)
})