File tree Expand file tree Collapse file tree 4 files changed +69
-1
lines changed
src/Components/ChangeLang Expand file tree Collapse file tree 4 files changed +69
-1
lines changed Original file line number Diff line number Diff line change
1
+ import React , { useState } from 'react' ;
2
+ import Others from './Others02' ;
3
+ import { LangContext } from './langContext' ;
4
+
5
+ export default function MainBiggerComponent ( ) {
6
+ const [ lang , setLang ] = useState ( 'fa' ) ;
7
+
8
+ function toggleHandler ( ) {
9
+ setLang ( lang === 'en' ? 'fa' : 'en' ) ;
10
+ }
11
+
12
+ return (
13
+ < LangContext . Provider value = { { lang, toggleHandler } } >
14
+ < LangTogglerIndependent />
15
+ < Others />
16
+ </ LangContext . Provider >
17
+ ) ;
18
+ }
19
+
20
+ function LangTogglerIndependent ( ) {
21
+ return (
22
+ < LangContext . Consumer >
23
+ { ( { lang, toggleHandler } ) => (
24
+ < button type = "submit" onClick = { toggleHandler } >
25
+ active lang :
26
+ { lang }
27
+ </ button >
28
+ ) }
29
+ </ LangContext . Consumer >
30
+ ) ;
31
+ }
Original file line number Diff line number Diff line change
1
+ import React , { useContext } from 'react' ;
2
+ import { LangContext , languagesObject } from './langContext' ;
3
+
4
+ export default function Others ( ) {
5
+ return (
6
+ < FirstInnerComponent />
7
+ ) ;
8
+ }
9
+
10
+ function FirstInnerComponent ( ) {
11
+ return (
12
+ < SecoundInnerComponent />
13
+ ) ;
14
+ }
15
+
16
+ function SecoundInnerComponent ( ) {
17
+ return (
18
+ < ThirdInnerComponent />
19
+ ) ;
20
+ }
21
+
22
+ function ThirdInnerComponent ( ) {
23
+ const { lang } = useContext ( LangContext ) ;
24
+
25
+ return (
26
+ < p > { languagesObject [ lang ] . join ( ' ' ) } </ p >
27
+ ) ;
28
+ }
Original file line number Diff line number Diff line change 1
1
import React from 'react' ;
2
2
import MainBiggerComponent from './Main' ;
3
+ import MainBiggerComponent02 from './Main02' ;
3
4
4
5
export default function ChangeLang ( ) {
5
6
return (
6
7
< >
7
8
< h1 > lang example</ h1 >
9
+ < h2 > way 01 :</ h2 >
8
10
< MainBiggerComponent />
11
+ < br />
12
+ < h2 > way 02 :</ h2 >
13
+ < MainBiggerComponent02 />
14
+ < br />
9
15
</ >
10
16
) ;
11
17
}
Original file line number Diff line number Diff line change @@ -5,7 +5,10 @@ const languagesObject = {
5
5
fa : [ 'سلام' , 'عزیزم' , 'چطوری؟' ] ,
6
6
} ;
7
7
8
- const LangContext = React . createContext ( languagesObject . fa ) ;
8
+ const LangContext = React . createContext ( {
9
+ lang : languagesObject . fa ,
10
+ toggleLang : ( ) => { } ,
11
+ } ) ;
9
12
10
13
export {
11
14
LangContext ,
You can’t perform that action at this time.
0 commit comments