1
1
import React , { useState , createContext , useContext } from "react"
2
- import ReactDOM from "react-dom"
2
+ import { createRoot } from "react-dom/client "
3
3
4
4
const languages = [ "JavaScript" , "Python" ]
5
5
const LanguageContext = createContext ( {
@@ -8,25 +8,14 @@ const LanguageContext = createContext({
8
8
setLanguage : ( ) => { } ,
9
9
} )
10
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 ( ) {
11
+ const MainSection = ( ) => {
21
12
const { languages, language, setLanguage } = useContext ( LanguageContext )
22
13
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
- }
14
+ const toggleLanguage = ( ) =>
15
+ currentIndex === languages . length - 1
16
+ ? setLanguage ( languages [ 0 ] )
17
+ : setLanguage ( languages [ currentIndex + 1 ] )
18
+
30
19
return (
31
20
< div >
32
21
< p id = "favoriteLanguage" > { `Favorite programming language: ${ language } ` } </ p >
@@ -37,4 +26,14 @@ function MainSection() {
37
26
)
38
27
}
39
28
40
- ReactDOM . render ( < App /> , document . getElementById ( "root" ) )
29
+ const App = ( ) => {
30
+ const [ language , setLanguage ] = useState ( languages [ 0 ] )
31
+ return (
32
+ < LanguageContext . Provider value = { { languages, language, setLanguage } } >
33
+ < MainSection />
34
+ </ LanguageContext . Provider >
35
+ )
36
+ }
37
+
38
+ const root = createRoot ( document . getElementById ( "root" ) )
39
+ root . render ( < App /> )
0 commit comments