File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ import React , { useState , createContext , useContext } from "react"
2
+ import ReactDOM from "react-dom"
3
+
4
+ const languages = [ "JavaScript" , "Python" ]
5
+ const LanguageContext = createContext ( {
6
+ languages,
7
+ language : languages [ 0 ] ,
8
+ setLanguage : ( ) => { } ,
9
+ } )
10
+
11
+ function App ( ) {
12
+ const [ language , setLanguage ] = useState ( languages [ 0 ] )
13
+ return (
14
+ < LanguageContext . Provider value = { { languages, language, setLanguage } } >
15
+ < MainSection />
16
+ </ LanguageContext . Provider >
17
+ )
18
+ }
19
+
20
+ function MainSection ( ) {
21
+ const { languages, language, setLanguage } = useContext ( LanguageContext )
22
+ const currentIndex = languages . indexOf ( language )
23
+ const toggleLanguage = ( ) => {
24
+ if ( currentIndex === languages . length - 1 ) {
25
+ setLanguage ( languages [ 0 ] )
26
+ } else {
27
+ setLanguage ( languages [ currentIndex + 1 ] )
28
+ }
29
+ }
30
+ return (
31
+ < div >
32
+ < p id = "favoriteLanguage" > { `Favorite programing language: ${ language } ` } </ p >
33
+ < button id = "changeFavorite" onClick = { toggleLanguage } >
34
+ Toggle language
35
+ </ button >
36
+ </ div >
37
+ )
38
+ }
39
+
40
+ ReactDOM . render ( < App /> , document . getElementById ( "root" ) )
You can’t perform that action at this time.
0 commit comments