-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLanguageSelect.jsx
38 lines (34 loc) · 970 Bytes
/
LanguageSelect.jsx
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
import Select from 'react-select';
import languageOptions from '../util/languages';
import React from 'react';
export default function LanguageSelect({
selectedLanguages,
setSelectedLanguages,
customStyle,
isMultiEnabled,
}) {
const handleChange = (selectedOptions) => {
if (!isMultiEnabled) {
setSelectedLanguages(selectedOptions.label);
return;
}
setSelectedLanguages(selectedOptions.map((option) => option.value));
};
const value = isMultiEnabled
? languageOptions.filter((option) =>
selectedLanguages.includes(option.value)
)
: languageOptions.find((option) => option.value === selectedLanguages);
return (
<div className={`mt-4 mb-4 ${customStyle}`}>
<Select
id="language-select"
isMulti={isMultiEnabled}
placeholder="Add your programming languages"
onChange={handleChange}
options={languageOptions}
value={value}
/>
</div>
);
}