1
- import React , { useState } from 'react' ;
1
+ import React , { useState } from 'react' ;
2
2
import makeStyles from '@mui/styles/makeStyles' ;
3
3
import Tabs from '@mui/material/Tabs' ;
4
4
import Tab from '@mui/material/Tab' ;
@@ -17,11 +17,10 @@ import Arrow from '../main/Arrow';
17
17
import { useDispatch , useSelector } from 'react-redux' ;
18
18
import { changeProjectType } from '../../redux/reducers/slice/appStateSlice' ;
19
19
20
-
21
20
const BottomTabs = ( props ) : JSX . Element => {
22
21
// state that controls which tab the user is on
23
22
const dispatch = useDispatch ( ) ;
24
- const { state, contextParam, style, } = useSelector ( ( store ) => ( {
23
+ const { state, contextParam, style } = useSelector ( ( store ) => ( {
25
24
state : store . appState ,
26
25
contextParam : store . contextSlice ,
27
26
style : store . styleSlice ,
@@ -37,13 +36,13 @@ const BottomTabs = (props): JSX.Element => {
37
36
} ;
38
37
// Allows users to toggle project between "next.js" and "Classic React"
39
38
// When a user changes the project type, the code of all components is rerendered
40
- const handleProjectChange = event => {
39
+ const handleProjectChange = ( event ) => {
41
40
const projectType = event . target . value ;
42
- dispatch ( changeProjectType ( { projectType, contextParam } ) )
41
+ dispatch ( changeProjectType ( { projectType, contextParam } ) ) ;
43
42
} ;
44
43
const { components, HTMLTypes } = state ;
45
44
46
- const changeTheme = e => {
45
+ const changeTheme = ( e ) => {
47
46
setTheme ( e . target . value ) ;
48
47
} ;
49
48
@@ -55,40 +54,100 @@ const BottomTabs = (props): JSX.Element => {
55
54
className = { `${ classes . root } ${ classes . rootLight } ` }
56
55
style = { { backgroundColor : '#003366' } }
57
56
>
58
- < Box display = "flex" justifyContent = "space-between" alignItems = "center" paddingBottom = "10px" paddingRight = "10px" >
59
- < Tabs value = { tab } onChange = { handleChange } classes = { { root : classes . tabsRoot , indicator : classes . tabsIndicator } } variant = "scrollable" scrollButtons = "auto" >
60
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "Creation Panel" />
61
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "Customization" />
62
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "CSS Editor" />
63
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "Code Preview" />
64
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "Component Tree" />
65
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "Context Manager" />
66
- < Tab disableRipple classes = { { root : classes . tabRoot , selected : classes . tabSelected } } label = "State Manager" />
57
+ < Box
58
+ display = "flex"
59
+ justifyContent = "space-between"
60
+ alignItems = "center"
61
+ paddingBottom = "10px"
62
+ paddingRight = "10px"
63
+ >
64
+ < Tabs
65
+ value = { tab }
66
+ onChange = { handleChange }
67
+ classes = { { root : classes . tabsRoot , indicator : classes . tabsIndicator } }
68
+ variant = "scrollable"
69
+ scrollButtons = "auto"
70
+ >
71
+ < Tab
72
+ disableRipple
73
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
74
+ label = "Creation Panel"
75
+ />
76
+ < Tab
77
+ disableRipple
78
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
79
+ label = "Customization"
80
+ />
81
+ < Tab
82
+ disableRipple
83
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
84
+ label = "CSS Editor"
85
+ />
86
+ < Tab
87
+ disableRipple
88
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
89
+ label = "Code Preview"
90
+ />
91
+ < Tab
92
+ disableRipple
93
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
94
+ label = "Component Tree"
95
+ />
96
+ < Tab
97
+ disableRipple
98
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
99
+ label = "Context Manager"
100
+ />
101
+ < Tab
102
+ disableRipple
103
+ classes = { { root : classes . tabRoot , selected : classes . tabSelected } }
104
+ label = "State Manager"
105
+ />
67
106
</ Tabs >
68
107
< div className = { classes . projectTypeWrapper } >
69
108
< FormControl size = "small" >
70
- < Select variant = "outlined" labelId = "project-type-label" id = "demo-simple-select" className = { classes . projectSelector } value = { state . projectType } onChange = { handleProjectChange } MenuProps = { { disablePortal : true } } >
71
- < MenuItem style = { { color : 'black' } } value = { 'Classic React' } > Classic React</ MenuItem >
72
- < MenuItem style = { { color : 'black' } } value = { 'Gatsby.js' } > Gatsby.js</ MenuItem >
73
- < MenuItem style = { { color : 'black' } } value = { 'Next.js' } > Next.js</ MenuItem >
109
+ < Select
110
+ variant = "outlined"
111
+ labelId = "project-type-label"
112
+ id = "demo-simple-select"
113
+ className = { classes . projectSelector }
114
+ value = { state . projectType }
115
+ onChange = { handleProjectChange }
116
+ MenuProps = { { disablePortal : true } }
117
+ >
118
+ < MenuItem style = { { color : 'black' } } value = { 'Classic React' } >
119
+ Classic React
120
+ </ MenuItem >
121
+ < MenuItem style = { { color : 'black' } } value = { 'Gatsby.js' } >
122
+ Gatsby.js
123
+ </ MenuItem >
124
+ < MenuItem style = { { color : 'black' } } value = { 'Next.js' } >
125
+ Next.js
126
+ </ MenuItem >
74
127
</ Select >
75
128
</ FormControl >
76
129
</ div >
77
130
</ Box >
78
- < div className = ' tab-content' >
131
+ < div className = " tab-content" >
79
132
{ tab === 0 && < CreationPanel isThemeLight = { props . isThemeLight } /> }
80
133
{ tab === 1 && < CustomizationPanel isThemeLight = { props . isThemeLight } /> }
81
134
{ tab === 2 && < StylesEditor theme = { theme } setTheme = { setTheme } /> }
82
135
{ tab === 3 && < CodePreview theme = { theme } setTheme = { setTheme } /> }
83
136
{ tab === 4 && < Tree data = { components } /> }
84
137
{ tab === 5 && < ContextManager theme = { theme } setTheme = { setTheme } /> }
85
- { tab === 6 && < StateManager theme = { theme } setTheme = { setTheme } isThemeLight = { props . isThemeLight } /> }
138
+ { tab === 6 && (
139
+ < StateManager
140
+ theme = { theme }
141
+ setTheme = { setTheme }
142
+ isThemeLight = { props . isThemeLight }
143
+ />
144
+ ) }
86
145
</ div >
87
146
</ div >
88
147
) ;
89
148
} ;
90
149
91
- const useStyles = makeStyles ( theme => ( {
150
+ const useStyles = makeStyles ( ( theme ) => ( {
92
151
root : {
93
152
flexGrow : 1 ,
94
153
height : '100%' ,
@@ -113,9 +172,9 @@ const useStyles = makeStyles(theme => ({
113
172
tabRoot : {
114
173
textTransform : 'initial' ,
115
174
minWidth : 40 ,
116
- fontWeight : theme . typography . fontWeightRegular ,
117
- marginRight : theme . spacing ( 2 ) , // JZ: updated syntax as per deprecation warning
118
- marginLeft : theme . spacing ( 2 ) ,
175
+ // fontWeight: theme.typography.fontWeightRegular,
176
+ // marginRight: theme.spacing(2), // JZ: updated syntax as per deprecation warning
177
+ // marginLeft: theme.spacing(2),
119
178
120
179
fontFamily : [
121
180
'-apple-system' ,
@@ -134,28 +193,28 @@ const useStyles = makeStyles(theme => ({
134
193
opacity : 1
135
194
} ,
136
195
'&$tabSelected' : {
137
- color : 'white' ,
138
- fontWeight : theme . typography . fontWeightMedium
196
+ color : 'white'
197
+ // fontWeight: theme.typography.fontWeightMedium
139
198
} ,
140
199
'&:focus' : {
141
200
color : 'white'
142
201
}
143
202
} ,
144
203
tabSelected : { } ,
145
- typography : {
146
- padding : theme . spacing ( 3 )
147
- } ,
148
- padding : {
149
- padding : `0 ${ theme . spacing ( 2 ) } `
150
- } ,
204
+ // typography: {
205
+ // padding: theme.spacing(3)
206
+ // / / },
207
+ // padding: {
208
+ // padding: `0 ${theme.spacing(2)}`
209
+ // },
151
210
switch : {
152
211
marginRight : '10px' ,
153
212
marginTop : '2px'
154
213
} ,
155
214
projectTypeWrapper : {
156
215
marginTop : '10px' ,
157
216
marginBotton : '10px' ,
158
- marginLeft : '10px' ,
217
+ marginLeft : '10px'
159
218
} ,
160
219
projectSelector : {
161
220
backgroundColor : '#0099E6' ,
0 commit comments