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