-
Notifications
You must be signed in to change notification settings - Fork 208
/
Copy pathcustom_words.tsx
45 lines (39 loc) · 1.01 KB
/
custom_words.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import * as React from 'react';
import WordSetToggle from '~/ui/wordset_toggle';
const CustomWords = ({ words, onWordChange, selected, onToggle }) => {
const [expanded, setExpanded] = React.useState(false);
React.useEffect(() => {
if (selected) {
setExpanded(true);
} else {
setExpanded(false);
}
}, [selected]);
const symbol = expanded ? '▾' : '▸';
const wordCount = words
.split(',')
.map((w) => w.trim())
.filter((w) => w.length > 0).length;
return (
<div>
<div className="btn-custom-word-set">
<WordSetToggle
key="custom"
label={symbol + ' Custom (' + wordCount + ' words)'}
selected={selected}
onToggle={onToggle}
></WordSetToggle>
</div>
{expanded && (
<div>
<textarea
value={words}
aria-label="custom word set"
onChange={(e) => onWordChange(e.target.value)}
/>
</div>
)}
</div>
);
};
export default CustomWords;