1 import React, { Component } from 'react'
2
3 const listStyle = {
4 listStyle: 'none'
5 }
6
7 type OptionProps = {
8 value: string
9 name: string
10 }
11
12 class LanguageOption extends Component<OptionProps> {
13
14 render() {
15 return (
16 <option value={this.props.value}>{this.props.name}</option>
17 )
18 }
19 }
20
21 type LanguageDropdownProps = {
22 onChangeLanguage: (language: string) => void
23 }
24
25 type LanguageDropdownState = {}
26
27 class LanguageDropdown extends Component<LanguageDropdownProps, LanguageDropdownState> {
28
29 getLanguageList(): OptionProps[] {
30
31 const en = {
32 value: "en",
33 name: "🇺🇸 English"
34 }
35
36 const sv = {
37 value: "se",
38 name: "🇸🇪 Swedish"
39 }
40
41 const id = {
42 value: "id",
43 name: "🇮🇩 Indonesian"
44 }
45
46 var languageList: OptionProps[] = []
47 languageList.push(id)
48 languageList.push(sv)
49 languageList.push(en)
50
51 return languageList
52 }
53
54 render() {
55
56 var languageList = [];
57
58 for (let language of this.getLanguageList()) {
59 languageList.push(<LanguageOption name={language.name} value={language.value} key={language.value}/>);
60 }
61
62 return (
63 <div>
64 <select style={listStyle} onChange={ e => this.props.onChangeLanguage(e.currentTarget.value) } defaultValue={"en"} >
65 {languageList}
66 </select>
67 </div>
68 )
69 }
70 }
71
72 export default LanguageDropdown;