Skip to content

Commit 72fa11d

Browse files
committed
4-languages-nav
1 parent 4845626 commit 72fa11d

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

app/components/Popular.jsx

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
import * as React from "react";
22

3+
function LanguagesNav({ selected, onUpdateLanguage }) {
4+
const languages = ["All", "JavaScript", "Ruby", "Java", "CSS", "Python"];
5+
6+
return (
7+
<select
8+
onChange={(e) => onUpdateLanguage(e.target.value)}
9+
selected={selected}
10+
>
11+
{languages.map((language) => (
12+
<option key={language} value={language}>
13+
{language}
14+
</option>
15+
))}
16+
</select>
17+
);
18+
}
19+
320
export default class Popular extends React.Component {
421
constructor(props) {
522
super(props);
@@ -16,20 +33,14 @@ export default class Popular extends React.Component {
1633
});
1734
}
1835
render() {
19-
const languages = ["All", "JavaScript", "Ruby", "Java", "CSS", "Python"];
36+
const { selectedLanguage } = this.state;
2037

2138
return (
2239
<main>
23-
<select
24-
onChange={(e) => this.updateLanguage(e.target.value)}
25-
selected={this.state.selectedLanguage}
26-
>
27-
{languages.map((language) => (
28-
<option key={language} value={language}>
29-
{language}
30-
</option>
31-
))}
32-
</select>
40+
<LanguagesNav
41+
selected={selectedLanguage}
42+
onUpdateLanguage={this.updateLanguage}
43+
/>
3344
{JSON.stringify(this.state, null, 2)}
3445
</main>
3546
);

0 commit comments

Comments
 (0)