@nrwl/react-native 13.2.1 → 13.3.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -7
- package/plugins/metro-resolver.js +93 -25
- package/plugins/metro-resolver.js.map +1 -1
- package/plugins/with-nx-metro.js +1 -1
- package/plugins/with-nx-metro.js.map +1 -1
- package/project.json +1 -3
- package/src/executors/build-android/build-android.impl.js +3 -3
- package/src/executors/build-android/build-android.impl.js.map +1 -1
- package/src/executors/build-android/build-android.impl.ts +7 -3
- package/src/executors/bundle/bundle.impl.js +3 -7
- package/src/executors/bundle/bundle.impl.js.map +1 -1
- package/src/executors/bundle/bundle.impl.ts +3 -7
- package/src/executors/run-android/run-android.impl.js +10 -7
- package/src/executors/run-android/run-android.impl.js.map +1 -1
- package/src/executors/run-android/run-android.impl.ts +10 -7
- package/src/executors/run-android/schema.d.ts +1 -0
- package/src/executors/run-android/schema.json +5 -0
- package/src/executors/run-ios/run-ios.impl.js +9 -6
- package/src/executors/run-ios/run-ios.impl.js.map +1 -1
- package/src/executors/run-ios/run-ios.impl.ts +9 -6
- package/src/executors/run-ios/schema.d.ts +1 -0
- package/src/executors/run-ios/schema.json +5 -0
- package/src/executors/start/start.impl.js +1 -1
- package/src/executors/start/start.impl.js.map +1 -1
- package/src/executors/start/start.impl.ts +1 -1
- package/src/executors/sync-deps/sync-deps.impl.d.ts +1 -1
- package/src/executors/sync-deps/sync-deps.impl.js +3 -3
- package/src/executors/sync-deps/sync-deps.impl.js.map +1 -1
- package/src/executors/sync-deps/sync-deps.impl.ts +8 -2
- package/src/generators/application/application.js +5 -5
- package/src/generators/application/application.js.map +1 -1
- package/src/generators/application/files/app/android/app/build.gradle.template +1 -1
- package/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template +1 -1
- package/src/generators/application/files/app/src/app/App.tsx.template +427 -106
- package/src/generators/application/files/app/src/app/icons/blog.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/book.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/checkmark.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/chevron-right.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/courses.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/github.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/heart.svg +1 -0
- package/src/generators/application/files/app/src/app/{logo.png → icons/logo.png} +0 -0
- package/src/generators/application/files/app/src/app/icons/nx-cloud.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/pointer.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/terminal.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/vscode.svg +1 -0
- package/src/generators/application/files/app/src/app/icons/youtube.svg +1 -0
- package/src/generators/application/lib/add-project.js +2 -2
- package/src/generators/application/lib/add-project.js.map +1 -1
- package/src/generators/application/lib/nomalize-options.spec.ts +10 -5
- package/src/generators/application/lib/normalize-options.d.ts +1 -0
- package/src/generators/application/lib/normalize-options.js +4 -2
- package/src/generators/application/lib/normalize-options.js.map +1 -1
- package/src/generators/init/init.js +7 -17
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/library/library.js +2 -2
- package/src/generators/library/library.js.map +1 -1
- package/src/generators/library/library.spec.ts +1 -1
- package/src/migrations/update-12-5-0/update-jest-for-react-native.js +9 -3
- package/src/migrations/update-12-5-0/update-jest-for-react-native.js.map +1 -1
- package/src/utils/add-jest.d.ts +1 -1
- package/src/utils/add-jest.js +2 -2
- package/src/utils/add-jest.js.map +1 -1
- package/src/utils/add-linting.js +6 -18
- package/src/utils/add-linting.js.map +1 -1
- package/src/utils/ensure-node-modules-symlink.js +1 -82
- package/src/utils/ensure-node-modules-symlink.js.map +1 -1
- package/src/utils/ensure-node-modules-symlink.spec.ts +8 -86
- package/src/utils/pod-install-task.d.ts +4 -4
- package/src/utils/pod-install-task.js +7 -7
- package/src/utils/pod-install-task.js.map +1 -1
- package/src/utils/symlink-task.d.ts +1 -1
- package/src/utils/symlink-task.js +2 -3
- package/src/utils/symlink-task.js.map +1 -1
- package/src/utils/versions.d.ts +1 -0
- package/src/utils/versions.js +3 -2
- package/src/utils/versions.js.map +1 -1
- package/src/generators/application/files/app/src/app/star.svg +0 -11
|
@@ -1,165 +1,486 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable jsx-a11y/accessible-emoji */
|
|
2
|
+
import React, { useRef, useState } from 'react';
|
|
2
3
|
import {
|
|
3
4
|
SafeAreaView,
|
|
4
5
|
StyleSheet,
|
|
5
6
|
ScrollView,
|
|
6
|
-
Image,
|
|
7
7
|
View,
|
|
8
8
|
Text,
|
|
9
9
|
StatusBar,
|
|
10
10
|
TouchableOpacity,
|
|
11
11
|
} from 'react-native';
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
Colors,
|
|
15
|
-
DebugInstructions,
|
|
16
|
-
ReloadInstructions,
|
|
17
|
-
} from 'react-native/Libraries/NewAppScreen';
|
|
18
13
|
// @ts-ignore
|
|
19
14
|
import openURLInBrowser from 'react-native/Libraries/Core/Devtools/openURLInBrowser';
|
|
20
|
-
|
|
15
|
+
|
|
16
|
+
import Checkmark from './icons/checkmark.svg';
|
|
17
|
+
import Book from './icons/book.svg';
|
|
18
|
+
import ChevronRight from './icons/chevron-right.svg';
|
|
19
|
+
import Blog from './icons/blog.svg';
|
|
20
|
+
import Courses from './icons/courses.svg';
|
|
21
|
+
import YouTube from './icons/youtube.svg';
|
|
22
|
+
import Pointer from './icons/pointer.svg';
|
|
23
|
+
import VSCode from './icons/vscode.svg';
|
|
24
|
+
import NxCloud from './icons/nx-cloud.svg';
|
|
25
|
+
import GitHub from './icons/github.svg';
|
|
26
|
+
import Terminal from './icons/terminal.svg';
|
|
27
|
+
import Heart from './icons/heart.svg';
|
|
21
28
|
|
|
22
29
|
const App = () => {
|
|
30
|
+
const [whatsNextYCoord, setWhatsNextYCoord] = useState<number>(0);
|
|
31
|
+
const scrollViewRef = useRef<null | ScrollView>(null);
|
|
32
|
+
|
|
23
33
|
return (
|
|
24
34
|
<>
|
|
25
35
|
<StatusBar barStyle="dark-content" />
|
|
26
36
|
<SafeAreaView>
|
|
27
37
|
<ScrollView
|
|
38
|
+
ref={(ref) => {
|
|
39
|
+
scrollViewRef.current = ref;
|
|
40
|
+
}}
|
|
28
41
|
contentInsetAdjustmentBehavior="automatic"
|
|
29
42
|
style={styles.scrollView}
|
|
30
43
|
>
|
|
31
|
-
<View style={styles.
|
|
32
|
-
<
|
|
33
|
-
<Text style={styles.
|
|
44
|
+
<View style={styles.section}>
|
|
45
|
+
<Text style={styles.textLg}>Hello there,</Text>
|
|
46
|
+
<Text style={[styles.textXL, styles.appTitleText]} testID="heading">
|
|
47
|
+
Welcome <%= displayName %> 👋
|
|
48
|
+
</Text>
|
|
34
49
|
</View>
|
|
35
|
-
<View style={styles.
|
|
36
|
-
<View style={styles.
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
<View style={styles.section}>
|
|
51
|
+
<View style={styles.hero}>
|
|
52
|
+
<View style={styles.heroTitle}>
|
|
53
|
+
<Checkmark
|
|
54
|
+
width={32}
|
|
55
|
+
height={32}
|
|
56
|
+
stroke="hsla(162, 47%, 50%, 1)"
|
|
57
|
+
/>
|
|
58
|
+
<Text style={[styles.textLg, styles.heroTitleText]}>
|
|
59
|
+
You're up and running
|
|
60
|
+
</Text>
|
|
61
|
+
</View>
|
|
62
|
+
<TouchableOpacity
|
|
63
|
+
style={styles.whatsNextButton}
|
|
64
|
+
onPress={() => {
|
|
65
|
+
scrollViewRef.current?.scrollTo({
|
|
66
|
+
x: 0,
|
|
67
|
+
y: whatsNextYCoord,
|
|
68
|
+
});
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
<Text style={[styles.textMd, styles.textCenter]}>
|
|
72
|
+
What's next?
|
|
73
|
+
</Text>
|
|
74
|
+
</TouchableOpacity>
|
|
50
75
|
</View>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
76
|
+
</View>
|
|
77
|
+
<View style={styles.section}>
|
|
78
|
+
<View style={[styles.middleContent, styles.shadowBox]}>
|
|
79
|
+
<Text style={[styles.marginBottomMd, styles.textLg]}>
|
|
80
|
+
Learning materials
|
|
55
81
|
</Text>
|
|
56
|
-
</View>
|
|
57
|
-
<View style={styles.sectionContainer}>
|
|
58
|
-
<Text style={styles.sectionTitle}>Learn More</Text>
|
|
59
82
|
<TouchableOpacity
|
|
60
|
-
|
|
61
|
-
onPress={() =>
|
|
62
|
-
|
|
83
|
+
style={[styles.listItem, styles.learning]}
|
|
84
|
+
onPress={() =>
|
|
85
|
+
openURLInBrowser(
|
|
86
|
+
'https://nx.dev/getting-started/intro?utm_source=nx-project'
|
|
87
|
+
)
|
|
88
|
+
}
|
|
63
89
|
>
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
90
|
+
<Book width={24} height={24} stroke="#000000" />
|
|
91
|
+
<View style={styles.listItemTextContainer}>
|
|
92
|
+
<Text style={[styles.textMd]}>Documentation</Text>
|
|
93
|
+
<Text style={[styles.text2XS, styles.textSubtle]}>
|
|
94
|
+
Everything is in there
|
|
95
|
+
</Text>
|
|
96
|
+
</View>
|
|
97
|
+
<ChevronRight width={18} height={18} stroke="#000000" />
|
|
68
98
|
</TouchableOpacity>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
99
|
+
<TouchableOpacity
|
|
100
|
+
style={[styles.listItem, styles.learning]}
|
|
101
|
+
onPress={() =>
|
|
102
|
+
openURLInBrowser(
|
|
103
|
+
'https://blog.nrwl.io/?utm_source=nx-project'
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
>
|
|
107
|
+
<Blog width={24} height={24} stroke="#000000" />
|
|
108
|
+
<View style={styles.listItemTextContainer}>
|
|
109
|
+
<Text style={[styles.textMd]}>Blog</Text>
|
|
110
|
+
<Text style={[styles.text2XS, styles.textSubtle]}>
|
|
111
|
+
Changelog, features & events
|
|
112
|
+
</Text>
|
|
113
|
+
</View>
|
|
114
|
+
<ChevronRight width={18} height={18} stroke="#000000" />
|
|
115
|
+
</TouchableOpacity>
|
|
116
|
+
<TouchableOpacity
|
|
117
|
+
style={[styles.listItem, styles.learning]}
|
|
118
|
+
onPress={() =>
|
|
119
|
+
openURLInBrowser(
|
|
120
|
+
'https://www.youtube.com/c/Nrwl_io/videos?utm_source=nx-project'
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
>
|
|
124
|
+
<YouTube width={24} height={24} fill="#000000" />
|
|
125
|
+
<View style={styles.listItemTextContainer}>
|
|
126
|
+
<Text style={[styles.textMd]}>Youtube channel</Text>
|
|
127
|
+
<Text style={[styles.text2XS, styles.textSubtle]}>
|
|
128
|
+
Nx Show, talks & tutorials
|
|
129
|
+
</Text>
|
|
130
|
+
</View>
|
|
131
|
+
<ChevronRight width={18} height={18} stroke="#000000" />
|
|
132
|
+
</TouchableOpacity>
|
|
133
|
+
<TouchableOpacity
|
|
134
|
+
style={[styles.listItem, styles.learning]}
|
|
135
|
+
onPress={() =>
|
|
136
|
+
openURLInBrowser(
|
|
137
|
+
'https://nx.dev/tutorial/01-create-application?utm_source=nx-project'
|
|
138
|
+
)
|
|
139
|
+
}
|
|
140
|
+
>
|
|
141
|
+
<Pointer width={24} height={24} stroke="#000000" />
|
|
142
|
+
<View style={styles.listItemTextContainer}>
|
|
143
|
+
<Text style={[styles.textMd]}>Interactive tutorials</Text>
|
|
144
|
+
<Text style={[styles.text2XS, styles.textSubtle]}>
|
|
145
|
+
Create an app, step by step
|
|
146
|
+
</Text>
|
|
147
|
+
</View>
|
|
148
|
+
<ChevronRight width={18} height={18} stroke="#000000" />
|
|
149
|
+
</TouchableOpacity>
|
|
150
|
+
<TouchableOpacity
|
|
151
|
+
style={[styles.listItem, styles.learning]}
|
|
152
|
+
onPress={() =>
|
|
153
|
+
openURLInBrowser(
|
|
154
|
+
'https://nxplaybook.com/?utm_source=nx-project'
|
|
155
|
+
)
|
|
156
|
+
}
|
|
157
|
+
>
|
|
158
|
+
<Courses width={24} height={24} stroke="#000000" />
|
|
159
|
+
<View style={styles.listItemTextContainer}>
|
|
160
|
+
<Text style={[styles.textMd]}>Video courses</Text>
|
|
161
|
+
<Text style={[styles.text2XS, styles.textSubtle]}>
|
|
162
|
+
Nx custom courses
|
|
163
|
+
</Text>
|
|
164
|
+
</View>
|
|
165
|
+
<ChevronRight width={18} height={18} stroke="#000000" />
|
|
166
|
+
</TouchableOpacity>
|
|
167
|
+
</View>
|
|
168
|
+
</View>
|
|
169
|
+
<View style={styles.section}>
|
|
170
|
+
<TouchableOpacity
|
|
171
|
+
onPress={() =>
|
|
172
|
+
openURLInBrowser(
|
|
173
|
+
'https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console&utm_source=nx-project'
|
|
174
|
+
)
|
|
175
|
+
}
|
|
176
|
+
>
|
|
177
|
+
<View style={[styles.listItem, styles.shadowBox]}>
|
|
178
|
+
<VSCode width={48} height={48} fill="rgba(0, 122, 204, 1)" />
|
|
179
|
+
<View style={styles.listItemTextContainer}>
|
|
180
|
+
<Text
|
|
181
|
+
style={[
|
|
182
|
+
styles.textMd,
|
|
183
|
+
styles.textBold,
|
|
184
|
+
styles.marginBottomSm,
|
|
185
|
+
]}
|
|
186
|
+
>
|
|
187
|
+
Install Nx Console
|
|
188
|
+
</Text>
|
|
189
|
+
<Text style={[styles.textXS, styles.textLight]}>
|
|
190
|
+
Plugin for VSCode
|
|
191
|
+
</Text>
|
|
192
|
+
</View>
|
|
193
|
+
</View>
|
|
194
|
+
</TouchableOpacity>
|
|
195
|
+
</View>
|
|
196
|
+
<View style={styles.section}>
|
|
197
|
+
<TouchableOpacity
|
|
198
|
+
onPress={() =>
|
|
199
|
+
openURLInBrowser('https://nx.app/?utm_source=nx-project')
|
|
200
|
+
}
|
|
201
|
+
>
|
|
202
|
+
<View style={styles.shadowBox}>
|
|
203
|
+
<View style={[styles.listItem, styles.marginBottomMd]}>
|
|
204
|
+
<NxCloud width={48} height={48} />
|
|
205
|
+
<View style={styles.listItemTextContainer}>
|
|
206
|
+
<Text
|
|
207
|
+
style={[
|
|
208
|
+
styles.textMd,
|
|
209
|
+
styles.textBold,
|
|
210
|
+
styles.marginBottomSm,
|
|
211
|
+
]}
|
|
212
|
+
>
|
|
213
|
+
Nx Cloud
|
|
214
|
+
</Text>
|
|
215
|
+
<Text style={[styles.textXS, styles.textLight]}>
|
|
216
|
+
Enable faster CI & better DX
|
|
217
|
+
</Text>
|
|
218
|
+
</View>
|
|
219
|
+
</View>
|
|
220
|
+
<View style={styles.codeBlock}>
|
|
221
|
+
<Text style={[styles.monospace]}>nx connect-to-nx-cloud</Text>
|
|
222
|
+
</View>
|
|
223
|
+
</View>
|
|
224
|
+
</TouchableOpacity>
|
|
225
|
+
</View>
|
|
226
|
+
<View style={styles.section}>
|
|
227
|
+
<TouchableOpacity
|
|
228
|
+
onPress={() =>
|
|
229
|
+
openURLInBrowser('https://nx.app/?utm_source=nx-project')
|
|
230
|
+
}
|
|
231
|
+
>
|
|
232
|
+
<View style={[styles.listItem, styles.shadowBox]}>
|
|
233
|
+
<GitHub width={48} height={48} fill="#000000" />
|
|
234
|
+
<View style={styles.listItemTextContainer}>
|
|
235
|
+
<Text
|
|
236
|
+
style={[
|
|
237
|
+
styles.textMd,
|
|
238
|
+
styles.textBold,
|
|
239
|
+
styles.marginBottomSm,
|
|
240
|
+
]}
|
|
241
|
+
>
|
|
242
|
+
Nx is open source
|
|
243
|
+
</Text>
|
|
244
|
+
<Text style={[styles.textXS, styles.textLight]}>
|
|
245
|
+
Love Nx? Give us a star!
|
|
246
|
+
</Text>
|
|
247
|
+
</View>
|
|
248
|
+
</View>
|
|
249
|
+
</TouchableOpacity>
|
|
250
|
+
</View>
|
|
251
|
+
<View
|
|
252
|
+
style={styles.section}
|
|
253
|
+
onLayout={(event) => {
|
|
254
|
+
const layout = event.nativeEvent.layout;
|
|
255
|
+
setWhatsNextYCoord(layout.y);
|
|
256
|
+
}}
|
|
257
|
+
>
|
|
258
|
+
<View style={styles.shadowBox}>
|
|
259
|
+
<Text style={[styles.textLg, styles.marginBottomMd]}>
|
|
260
|
+
Next steps
|
|
72
261
|
</Text>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
262
|
+
<Text
|
|
263
|
+
style={[styles.textSm, styles.textLight, styles.marginBottomMd]}
|
|
264
|
+
>
|
|
265
|
+
Here are some things you can do with Nx:
|
|
266
|
+
</Text>
|
|
267
|
+
<View style={styles.listItem}>
|
|
268
|
+
<Terminal width={24} height={24} stroke="#000000" />
|
|
269
|
+
<View style={styles.listItemTextContainer}>
|
|
270
|
+
<Text style={styles.textSm}>Add UI library</Text>
|
|
271
|
+
</View>
|
|
272
|
+
</View>
|
|
273
|
+
<View style={[styles.codeBlock, styles.marginBottomLg]}>
|
|
274
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
275
|
+
# Generate UI lib
|
|
276
|
+
</Text>
|
|
277
|
+
<Text
|
|
278
|
+
style={[
|
|
279
|
+
styles.textXS,
|
|
280
|
+
styles.monospace,
|
|
281
|
+
styles.marginBottomMd,
|
|
282
|
+
]}
|
|
283
|
+
>
|
|
284
|
+
nx g @nrwl/react-native:lib ui
|
|
285
|
+
</Text>
|
|
286
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
287
|
+
# Add a component
|
|
288
|
+
</Text>
|
|
289
|
+
<Text style={[styles.textXS, styles.monospace]}>nx g \</Text>
|
|
290
|
+
<Text style={[styles.textXS, styles.monospace]}>
|
|
291
|
+
@nrwl/react-native:component \
|
|
292
|
+
</Text>
|
|
293
|
+
<Text style={[styles.textXS, styles.monospace]}>
|
|
294
|
+
button --project ui
|
|
295
|
+
</Text>
|
|
296
|
+
</View>
|
|
297
|
+
<View style={styles.listItem}>
|
|
298
|
+
<Terminal width={24} height={24} stroke="#000000" />
|
|
299
|
+
<View style={styles.listItemTextContainer}>
|
|
300
|
+
<Text style={styles.textSm}>
|
|
301
|
+
View interactive dependency graph
|
|
302
|
+
</Text>
|
|
303
|
+
</View>
|
|
304
|
+
</View>
|
|
305
|
+
<View style={[styles.codeBlock, styles.marginBottomLg]}>
|
|
306
|
+
<Text style={[styles.textXS, styles.monospace]}>
|
|
307
|
+
nx dep-graph
|
|
308
|
+
</Text>
|
|
309
|
+
</View>
|
|
310
|
+
<View style={styles.listItem}>
|
|
311
|
+
<Terminal width={24} height={24} stroke="#000000" />
|
|
312
|
+
<View style={styles.listItemTextContainer}>
|
|
313
|
+
<Text style={styles.textSm}>Run affected commands</Text>
|
|
314
|
+
</View>
|
|
315
|
+
</View>
|
|
316
|
+
<View style={styles.codeBlock}>
|
|
317
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
318
|
+
# See what's affected by changes
|
|
319
|
+
</Text>
|
|
320
|
+
<Text
|
|
321
|
+
style={[
|
|
322
|
+
styles.textXS,
|
|
323
|
+
styles.monospace,
|
|
324
|
+
styles.marginBottomMd,
|
|
325
|
+
]}
|
|
326
|
+
>
|
|
327
|
+
nx affected:dep-graph
|
|
328
|
+
</Text>
|
|
329
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
330
|
+
# run tests for current changes
|
|
331
|
+
</Text>
|
|
332
|
+
<Text
|
|
333
|
+
style={[
|
|
334
|
+
styles.textXS,
|
|
335
|
+
styles.monospace,
|
|
336
|
+
styles.marginBottomMd,
|
|
337
|
+
]}
|
|
80
338
|
>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
339
|
+
nx affected:text
|
|
340
|
+
</Text>
|
|
341
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
342
|
+
# run e2e tests for current
|
|
343
|
+
</Text>
|
|
344
|
+
<Text style={[styles.textXS, styles.monospace, styles.comment]}>
|
|
345
|
+
# changes
|
|
346
|
+
</Text>
|
|
347
|
+
<Text style={[styles.textXS, styles.monospace]}>
|
|
348
|
+
nx affected:e2e
|
|
349
|
+
</Text>
|
|
84
350
|
</View>
|
|
85
351
|
</View>
|
|
352
|
+
<View style={[styles.listItem, styles.love]}>
|
|
353
|
+
<Text style={styles.textSubtle}>Carefully crafted with </Text>
|
|
354
|
+
<Heart width={24} height={24} fill="rgba(252, 165, 165, 1)" />
|
|
355
|
+
</View>
|
|
86
356
|
</View>
|
|
87
357
|
</ScrollView>
|
|
88
358
|
</SafeAreaView>
|
|
89
359
|
</>
|
|
90
360
|
);
|
|
91
361
|
};
|
|
92
|
-
|
|
93
362
|
const styles = StyleSheet.create({
|
|
94
363
|
scrollView: {
|
|
95
|
-
backgroundColor:
|
|
364
|
+
backgroundColor: '#ffffff',
|
|
96
365
|
},
|
|
97
|
-
|
|
98
|
-
backgroundColor: '
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
paddingVertical: 24,
|
|
366
|
+
codeBlock: {
|
|
367
|
+
backgroundColor: 'rgba(55, 65, 81, 1)',
|
|
368
|
+
marginVertical: 12,
|
|
369
|
+
padding: 12,
|
|
370
|
+
borderRadius: 4,
|
|
103
371
|
},
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
372
|
+
monospace: {
|
|
373
|
+
color: '#ffffff',
|
|
374
|
+
fontFamily: 'Courier',
|
|
375
|
+
marginVertical: 4,
|
|
108
376
|
},
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
fontWeight: '600',
|
|
112
|
-
color: Colors.lighter,
|
|
377
|
+
comment: {
|
|
378
|
+
color: '#cccccc',
|
|
113
379
|
},
|
|
114
|
-
|
|
115
|
-
|
|
380
|
+
marginBottomSm: {
|
|
381
|
+
marginBottom: 6,
|
|
116
382
|
},
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
paddingHorizontal: 24,
|
|
383
|
+
marginBottomMd: {
|
|
384
|
+
marginBottom: 18,
|
|
120
385
|
},
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
fontWeight: '600',
|
|
124
|
-
color: Colors.black,
|
|
386
|
+
marginBottomLg: {
|
|
387
|
+
marginBottom: 24,
|
|
125
388
|
},
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
389
|
+
textLight: {
|
|
390
|
+
fontWeight: '300',
|
|
391
|
+
},
|
|
392
|
+
textBold: {
|
|
393
|
+
fontWeight: '500',
|
|
131
394
|
},
|
|
132
|
-
|
|
133
|
-
|
|
395
|
+
textCenter: {
|
|
396
|
+
textAlign: 'center',
|
|
134
397
|
},
|
|
135
|
-
|
|
136
|
-
color: Colors.dark,
|
|
398
|
+
text2XS: {
|
|
137
399
|
fontSize: 12,
|
|
138
|
-
fontWeight: '600',
|
|
139
|
-
padding: 4,
|
|
140
|
-
paddingRight: 12,
|
|
141
|
-
textAlign: 'right',
|
|
142
400
|
},
|
|
143
|
-
|
|
144
|
-
|
|
401
|
+
textXS: {
|
|
402
|
+
fontSize: 14,
|
|
145
403
|
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
flexDirection: 'row',
|
|
149
|
-
justifyContent: 'center',
|
|
150
|
-
padding: 10,
|
|
404
|
+
textSm: {
|
|
405
|
+
fontSize: 16,
|
|
151
406
|
},
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
407
|
+
textMd: {
|
|
408
|
+
fontSize: 18,
|
|
409
|
+
},
|
|
410
|
+
textLg: {
|
|
411
|
+
fontSize: 24,
|
|
412
|
+
},
|
|
413
|
+
textXL: {
|
|
414
|
+
fontSize: 48,
|
|
415
|
+
},
|
|
416
|
+
textContainer: {
|
|
417
|
+
marginVertical: 12,
|
|
418
|
+
},
|
|
419
|
+
textSubtle: {
|
|
420
|
+
color: '#6b7280',
|
|
421
|
+
},
|
|
422
|
+
section: {
|
|
423
|
+
marginVertical: 24,
|
|
424
|
+
marginHorizontal: 12,
|
|
425
|
+
},
|
|
426
|
+
shadowBox: {
|
|
427
|
+
backgroundColor: 'white',
|
|
428
|
+
borderRadius: 24,
|
|
429
|
+
shadowColor: 'black',
|
|
430
|
+
shadowOpacity: 0.15,
|
|
431
|
+
shadowOffset: {
|
|
432
|
+
width: 1,
|
|
433
|
+
height: 4,
|
|
434
|
+
},
|
|
435
|
+
shadowRadius: 12,
|
|
436
|
+
padding: 24,
|
|
437
|
+
marginBottom: 24,
|
|
438
|
+
},
|
|
439
|
+
listItem: {
|
|
156
440
|
display: 'flex',
|
|
157
441
|
flexDirection: 'row',
|
|
158
442
|
alignItems: 'center',
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
443
|
+
},
|
|
444
|
+
listItemTextContainer: {
|
|
445
|
+
marginLeft: 12,
|
|
446
|
+
flex: 1,
|
|
447
|
+
},
|
|
448
|
+
appTitleText: {
|
|
449
|
+
paddingTop: 12,
|
|
450
|
+
fontWeight: '500',
|
|
451
|
+
},
|
|
452
|
+
hero: {
|
|
453
|
+
borderRadius: 12,
|
|
454
|
+
backgroundColor: '#143055',
|
|
455
|
+
padding: 36,
|
|
456
|
+
marginBottom: 24,
|
|
457
|
+
},
|
|
458
|
+
heroTitle: {
|
|
459
|
+
flex: 1,
|
|
460
|
+
flexDirection: 'row',
|
|
461
|
+
},
|
|
462
|
+
heroTitleText: {
|
|
463
|
+
color: '#ffffff',
|
|
464
|
+
marginLeft: 12,
|
|
465
|
+
},
|
|
466
|
+
heroText: {
|
|
467
|
+
color: '#ffffff',
|
|
468
|
+
marginVertical: 12,
|
|
469
|
+
},
|
|
470
|
+
whatsNextButton: {
|
|
471
|
+
backgroundColor: '#ffffff',
|
|
472
|
+
paddingVertical: 16,
|
|
473
|
+
borderRadius: 8,
|
|
474
|
+
width: '50%',
|
|
475
|
+
marginTop: 24,
|
|
476
|
+
},
|
|
477
|
+
learning: {
|
|
478
|
+
marginVertical: 12,
|
|
479
|
+
},
|
|
480
|
+
love: {
|
|
481
|
+
marginTop: 12,
|
|
482
|
+
justifyContent: 'center',
|
|
483
|
+
},
|
|
163
484
|
});
|
|
164
485
|
|
|
165
486
|
export default App;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10a2 2 0 012 2v1m2 13a2 2 0 01-2-2V7m2 13a2 2 0 002-2V9a2 2 0 00-2-2h-2m-4-3H9M7 16h6M7 8h6v4H7V8z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 14l9-5-9-5-9 5 9 5z"></path><path d="M12 14l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 14l9-5-9-5-9 5 9 5zm0 0l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14zm-4 6v-7.5l4-2.222"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" stroke="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path></svg>
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M120 15V30C103.44 30 90 43.44 90 60C90 76.56 76.56 90 60 90C43.44 90 30 103.44 30 120H15C6.72 120 0 113.28 0 105V15C0 6.72 6.72 0 15 0H105C113.28 0 120 6.72 120 15Z" fill="#0E2039"></path><path d="M120 30V105C120 113.28 113.28 120 105 120H30C30 103.44 43.44 90 60 90C76.56 90 90 76.56 90 60C90 43.44 103.44 30 120 30Z" fill="white"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Visual Studio Code</title><path d="M23.15 2.587L18.21.21a1.494 1.494 0 0 0-1.705.29l-9.46 8.63-4.12-3.128a.999.999 0 0 0-1.276.057L.327 7.261A1 1 0 0 0 .326 8.74L3.899 12 .326 15.26a1 1 0 0 0 .001 1.479L1.65 17.94a.999.999 0 0 0 1.276.057l4.12-3.128 9.46 8.63a1.492 1.492 0 0 0 1.704.29l4.942-2.377A1.5 1.5 0 0 0 24 20.06V3.939a1.5 1.5 0 0 0-.85-1.352zm-5.146 14.861L10.826 12l7.178-5.448v10.896z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg>
|
|
@@ -40,7 +40,7 @@ function getTargets(options) {
|
|
|
40
40
|
executor: '@nrwl/react-native:bundle',
|
|
41
41
|
outputs: [`${options.appProjectRoot}/build`],
|
|
42
42
|
options: {
|
|
43
|
-
entryFile:
|
|
43
|
+
entryFile: options.entryFile,
|
|
44
44
|
platform: 'ios',
|
|
45
45
|
bundleOutput: `dist/${options.appProjectRoot}/ios/main.jsbundle`,
|
|
46
46
|
},
|
|
@@ -60,7 +60,7 @@ function getTargets(options) {
|
|
|
60
60
|
architect['bundle-android'] = {
|
|
61
61
|
executor: '@nrwl/react-native:bundle',
|
|
62
62
|
options: {
|
|
63
|
-
entryFile:
|
|
63
|
+
entryFile: options.entryFile,
|
|
64
64
|
platform: 'android',
|
|
65
65
|
bundleOutput: `dist/${options.appProjectRoot}/android/main.jsbundle`,
|
|
66
66
|
},
|