1
1
import React , { useState , useEffect , useDeferredValue } from 'react'
2
2
import styled from '@emotion/styled'
3
+ import { ThemeProvider } from '@emotion/react'
3
4
import { Card , Input , Typography } from 'antd'
4
5
import GitHubButton from 'react-github-btn'
5
6
import ReactGA from 'react-ga'
@@ -18,8 +19,10 @@ import {
18
19
import { TroubleshootingGuidesButton } from '../common/TroubleshootingGuidesButton'
19
20
import { updateURL } from '../../utils/update-url'
20
21
import { deviceSizes } from '../../utils/device-sizes'
22
+ import { lightTheme , darkTheme } from '../../theme'
21
23
22
24
const Page = styled . div `
25
+ background-color: ${ ( { theme } ) => theme . body } ;
23
26
display: flex;
24
27
align-items: center;
25
28
justify-content: center;
@@ -30,7 +33,7 @@ const Page = styled.div`
30
33
const Container = styled ( Card ) `
31
34
width: 90%;
32
35
border-radius: 3px;
33
- border-color: #e8e8e8 ;
36
+ border-color: ${ ( { theme } ) => theme . border } ;
34
37
`
35
38
36
39
const HeaderContainer = styled . div `
@@ -181,95 +184,108 @@ const Home = () => {
181
184
setSettings ( normalizedIncomingSettings )
182
185
}
183
186
187
+ const [ themeName , setThemeName ] = useState ( 'light' )
188
+ const themeToggler = ( ) => {
189
+ themeName === 'light' ? setThemeName ( 'dark' ) : setThemeName ( 'light' )
190
+ }
191
+
184
192
return (
185
- < Page >
186
- < Container >
187
- < HeaderContainer >
188
- < TitleContainer >
189
- < LogoImg
190
- alt = "React Native Upgrade Helper logo"
191
- title = "React Native Upgrade Helper logo"
192
- src = { logo }
193
- />
194
- < a href = { homepageUrl } >
195
- < TitleHeader > React Native Upgrade Helper</ TitleHeader >
196
- </ a >
197
- </ TitleContainer >
198
-
199
- < SettingsContainer >
200
- < StarButton
201
- href = "https://github.com/react-native-community/upgrade-helper"
202
- data-icon = "octicon-star"
203
- data-show-count = "true"
204
- aria-label = "Star react-native-community/upgrade-helper on GitHub"
205
- >
206
- Star
207
- </ StarButton >
208
- { packageName === PACKAGE_NAMES . RN && (
209
- < TroubleshootingGuidesButton />
210
- ) }
211
- < Settings
212
- handleSettingsChange = { handleSettingsChange }
213
- packageName = { packageName }
214
- onChangePackageNameAndLanguage = {
215
- handlePackageNameAndLanguageChange
216
- }
217
- language = { language }
218
- />
219
- </ SettingsContainer >
220
- </ HeaderContainer >
221
-
222
- < AppDetailsContainer >
223
- < AppNameField >
224
- < Typography . Title level = { 5 } > What's your app name?</ Typography . Title >
225
-
226
- < Input
227
- size = "large"
228
- placeholder = { DEFAULT_APP_NAME }
229
- value = { appName }
230
- onChange = { ( { target } ) => setAppName ( ( value ) => target . value ) }
231
- />
232
- </ AppNameField >
233
-
234
- < AppPackageField >
235
- < Typography . Title level = { 5 } >
236
- What's your app package?
237
- </ Typography . Title >
238
-
239
- < Input
240
- size = "large"
241
- placeholder = { DEFAULT_APP_PACKAGE }
242
- value = { appPackage }
243
- onChange = { ( { target } ) => setAppPackage ( ( value ) => target . value ) }
244
- />
245
- </ AppPackageField >
246
- </ AppDetailsContainer >
247
- < VersionSelector
248
- key = { packageName }
249
- showDiff = { handleShowDiff }
250
- showReleaseCandidates = { settings [ SHOW_LATEST_RCS ] }
251
- packageName = { packageName }
252
- language = { language }
253
- isPackageNameDefinedInURL = { isPackageNameDefinedInURL }
254
- />
255
- </ Container >
256
- { /*
193
+ < ThemeProvider theme = { themeName === 'light' ? lightTheme : darkTheme } >
194
+ < Page >
195
+ < Container >
196
+ < HeaderContainer >
197
+ < TitleContainer >
198
+ < LogoImg
199
+ alt = "React Native Upgrade Helper logo"
200
+ title = "React Native Upgrade Helper logo"
201
+ src = { logo }
202
+ />
203
+ < a href = { homepageUrl } >
204
+ < TitleHeader > React Native Upgrade Helper</ TitleHeader >
205
+ </ a >
206
+ </ TitleContainer >
207
+
208
+ < SettingsContainer >
209
+ < StarButton
210
+ href = "https://github.com/react-native-community/upgrade-helper"
211
+ data-icon = "octicon-star"
212
+ data-show-count = "true"
213
+ aria-label = "Star react-native-community/upgrade-helper on GitHub"
214
+ >
215
+ Star
216
+ </ StarButton >
217
+ { packageName === PACKAGE_NAMES . RN && (
218
+ < TroubleshootingGuidesButton />
219
+ ) }
220
+ < Settings
221
+ handleSettingsChange = { handleSettingsChange }
222
+ packageName = { packageName }
223
+ onChangePackageNameAndLanguage = {
224
+ handlePackageNameAndLanguageChange
225
+ }
226
+ language = { language }
227
+ themeName = { themeName }
228
+ handleThemeToggle = { themeToggler }
229
+ />
230
+ </ SettingsContainer >
231
+ </ HeaderContainer >
232
+
233
+ < AppDetailsContainer >
234
+ < AppNameField >
235
+ < Typography . Title level = { 5 } >
236
+ What's your app name?
237
+ </ Typography . Title >
238
+
239
+ < Input
240
+ size = "large"
241
+ placeholder = { DEFAULT_APP_NAME }
242
+ value = { appName }
243
+ onChange = { ( { target } ) => setAppName ( ( value ) => target . value ) }
244
+ />
245
+ </ AppNameField >
246
+
247
+ < AppPackageField >
248
+ < Typography . Title level = { 5 } >
249
+ What's your app package?
250
+ </ Typography . Title >
251
+
252
+ < Input
253
+ size = "large"
254
+ placeholder = { DEFAULT_APP_PACKAGE }
255
+ value = { appPackage }
256
+ onChange = { ( { target } ) =>
257
+ setAppPackage ( ( value ) => target . value )
258
+ }
259
+ />
260
+ </ AppPackageField >
261
+ </ AppDetailsContainer >
262
+ < VersionSelector
263
+ key = { packageName }
264
+ showDiff = { handleShowDiff }
265
+ showReleaseCandidates = { settings [ SHOW_LATEST_RCS ] }
266
+ packageName = { packageName }
267
+ language = { language }
268
+ isPackageNameDefinedInURL = { isPackageNameDefinedInURL }
269
+ />
270
+ </ Container >
271
+ { /*
257
272
Pass empty values for app name and package if they're the defaults to
258
273
hint to diffing components they don't need to further patch the
259
274
rn-diff-purge output.
260
275
*/ }
261
- < DiffViewer
262
- shouldShowDiff = { shouldShowDiff }
263
- fromVersion = { fromVersion }
264
- toVersion = { toVersion }
265
- appName = { deferredAppName !== DEFAULT_APP_NAME ? deferredAppName : '' }
266
- appPackage = {
267
- deferredAppPackage !== DEFAULT_APP_PACKAGE ? deferredAppPackage : ''
268
- }
269
- packageName = { packageName }
270
- language = { language }
271
- />
272
- </ Page >
276
+ < DiffViewer
277
+ shouldShowDiff = { shouldShowDiff }
278
+ fromVersion = { fromVersion }
279
+ toVersion = { toVersion }
280
+ appName = { deferredAppName !== DEFAULT_APP_NAME ? deferredAppName : '' }
281
+ appPackage = {
282
+ deferredAppPackage !== DEFAULT_APP_PACKAGE ? deferredAppPackage : ''
283
+ }
284
+ packageName = { packageName }
285
+ language = { language }
286
+ />
287
+ </ Page >
288
+ </ ThemeProvider >
273
289
)
274
290
}
275
291
0 commit comments