create-expo-stack 2.7.0-next.e4d108e → 2.7.1-next.7228e17
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/README.md +16 -9
- package/build/commands/create-expo-stack.js +62 -15
- package/build/templates/base/app.json.ejs +5 -1
- package/build/templates/base/package.json.ejs +40 -12
- package/build/templates/base/tsconfig.json.ejs +1 -1
- package/build/templates/packages/nativewindui/app/+not-found.tsx.ejs +1 -1
- package/build/templates/packages/nativewindui/app/_layout.tsx.ejs +46 -39
- package/build/templates/packages/nativewindui/app/index.tsx.ejs +658 -165
- package/build/templates/packages/nativewindui/app/modal.tsx.ejs +20 -19
- package/build/templates/packages/nativewindui/components/nativewind-ui/ActivityIndicator.tsx.ejs +10 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/Avatar.tsx.ejs +139 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/DatePicker.android.tsx.ejs +66 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/DatePicker.tsx.ejs +10 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/Picker.tsx.ejs +39 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/ProgressIndicator.tsx.ejs +95 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/SegmentedControl.tsx.ejs +22 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/Sheet.tsx.ejs +59 -0
- package/build/templates/packages/nativewindui/components/nativewind-ui/Slider.tsx.ejs +28 -0
- package/build/templates/packages/nativewindui/components/{Text.tsx.ejs → nativewind-ui/Text.tsx.ejs} +28 -4
- package/build/templates/packages/nativewindui/components/nativewind-ui/ThemeToggle.tsx.ejs +35 -0
- package/build/templates/packages/nativewindui/components/{Toggle.tsx.ejs → nativewind-ui/Toggle.tsx.ejs} +3 -3
- package/build/templates/packages/nativewindui/global.css.ejs +3 -3
- package/build/templates/packages/nativewindui/lib/useColorScheme.tsx.ejs +47 -6
- package/build/templates/packages/nativewindui/lib/useHeaderSearchBar.tsx.ejs +2 -2
- package/build/templates/packages/nativewindui/metro.config.js.ejs +1 -0
- package/build/templates/packages/nativewindui/tailwind.config.js.ejs +34 -76
- package/build/templates/packages/nativewindui/theme/colors.ts.ejs +8 -8
- package/build/templates/packages/nativewindui/theme/index.ts.ejs +4 -4
- package/build/types/types.d.ts +2 -0
- package/build/types/utilities/clearNavigationPackages.d.ts +2 -0
- package/build/utilities/clearNavigationPackages.js +11 -0
- package/build/utilities/configureProjectFiles.js +64 -35
- package/build/utilities/printOutput.js +32 -14
- package/build/utilities/runCLI.js +80 -26
- package/package.json +1 -1
- package/build/templates/packages/nativewindui/app/bottom-tabs/_layout.tsx.ejs +0 -34
- package/build/templates/packages/nativewindui/app/bottom-tabs/index.tsx.ejs +0 -11
- package/build/templates/packages/nativewindui/app/bottom-tabs/profile.tsx.ejs +0 -11
- package/build/templates/packages/nativewindui/app/drawer/_layout.tsx.ejs +0 -29
- package/build/templates/packages/nativewindui/app/drawer/index.tsx.ejs +0 -11
- package/build/templates/packages/nativewindui/app/top-tabs/_layout.tsx.ejs +0 -71
- package/build/templates/packages/nativewindui/app/top-tabs/following.tsx.ejs +0 -13
- package/build/templates/packages/nativewindui/app/top-tabs/index.tsx.ejs +0 -13
- package/build/templates/packages/nativewindui/app/top-tabs/my-group.tsx.ejs +0 -13
- package/build/templates/packages/nativewindui/components/ThemeToggle.tsx.ejs +0 -53
- /package/build/templates/packages/nativewindui/lib/{utils.ts.ejs → cn.ts.ejs} +0 -0
|
@@ -43,7 +43,7 @@ var getPackageManager_1 = require("./getPackageManager");
|
|
|
43
43
|
var recommendedBunVersion = '1.0.14';
|
|
44
44
|
function runCLI(toolbox, projectName) {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
-
var options, _a, info, success, warning, cliResults, shouldUseTypescript, defaultPackageManagerVersion, shouldUseDefaultPackageManager, packageManagerSelect, packageManagerSelect, shouldUseNativeWindUI, navigationSelect, navigationType, shouldContinue, shouldContinue, stylingSelect, authenticationSelect, internationalizationSelect;
|
|
46
|
+
var options, _a, info, success, warning, cliResults, shouldUseTypescript, defaultPackageManagerVersion, shouldUseDefaultPackageManager, packageManagerSelect, packageManagerSelect, shouldUseNativeWindUI, selectedComponents, navigationSelect, navigationType, shouldContinue, shouldContinue, stylingSelect, authenticationSelect, internationalizationSelect;
|
|
47
47
|
return __generator(this, function (_b) {
|
|
48
48
|
switch (_b.label) {
|
|
49
49
|
case 0:
|
|
@@ -135,8 +135,63 @@ function runCLI(toolbox, projectName) {
|
|
|
135
135
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
136
136
|
return [2 /*return*/, process.exit(0)];
|
|
137
137
|
}
|
|
138
|
-
if (!shouldUseNativeWindUI) return [3 /*break*/,
|
|
139
|
-
|
|
138
|
+
if (!shouldUseNativeWindUI) return [3 /*break*/, 12];
|
|
139
|
+
selectedComponents = [];
|
|
140
|
+
return [4 /*yield*/, (0, prompts_1.multiselect)({
|
|
141
|
+
message: 'Which components would you like to explore?',
|
|
142
|
+
options: [
|
|
143
|
+
{ value: 'action-sheet', label: 'Action Sheet' },
|
|
144
|
+
{ value: 'activity-indicator', label: 'Activity Indicator' },
|
|
145
|
+
{ value: 'activity-view', label: 'Activity View' },
|
|
146
|
+
{ value: 'alert', label: 'Alert' },
|
|
147
|
+
{ value: 'avatar', label: 'Avatar' },
|
|
148
|
+
{ value: 'bottom-sheet', label: 'Bottom Sheet' },
|
|
149
|
+
{ value: 'context-menu', label: 'Context Menu' },
|
|
150
|
+
{ value: 'date-picker', label: 'Date Picker' },
|
|
151
|
+
{ value: 'dropdown-menu', label: 'Dropdown Menu' },
|
|
152
|
+
{ value: 'picker', label: 'Picker' },
|
|
153
|
+
{ value: 'progress-indicator', label: 'Progress Indicator' },
|
|
154
|
+
{ value: 'ratings-indicator', label: 'Ratings Indicator' },
|
|
155
|
+
{ value: 'segmented-control', label: 'Segmented Control' },
|
|
156
|
+
{ value: 'selectable-text', label: 'Selectable Text' },
|
|
157
|
+
{ value: 'slider', label: 'Slider' },
|
|
158
|
+
{ value: 'text', label: 'Text' },
|
|
159
|
+
{ value: 'toggle', label: 'Toggle' }
|
|
160
|
+
],
|
|
161
|
+
required: false,
|
|
162
|
+
initialValues: [
|
|
163
|
+
'action-sheet',
|
|
164
|
+
'activity-indicator',
|
|
165
|
+
'activity-view',
|
|
166
|
+
'alert',
|
|
167
|
+
'avatar',
|
|
168
|
+
'bottom-sheet',
|
|
169
|
+
'context-menu',
|
|
170
|
+
'date-picker',
|
|
171
|
+
'dropdown-menu',
|
|
172
|
+
'picker',
|
|
173
|
+
'progress-indicator',
|
|
174
|
+
'ratings-indicator',
|
|
175
|
+
'segmented-control',
|
|
176
|
+
'selectable-text',
|
|
177
|
+
'slider',
|
|
178
|
+
'text',
|
|
179
|
+
'toggle'
|
|
180
|
+
]
|
|
181
|
+
})];
|
|
182
|
+
case 11:
|
|
183
|
+
selectedComponents = (_b.sent());
|
|
184
|
+
if ((0, prompts_1.isCancel)(selectedComponents)) {
|
|
185
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
186
|
+
return [2 /*return*/, process.exit(0)];
|
|
187
|
+
}
|
|
188
|
+
cliResults.packages.push({
|
|
189
|
+
name: 'nativewindui',
|
|
190
|
+
type: 'styling',
|
|
191
|
+
options: {
|
|
192
|
+
selectedComponents: selectedComponents
|
|
193
|
+
}
|
|
194
|
+
});
|
|
140
195
|
cliResults.packages.push({
|
|
141
196
|
name: 'expo-router',
|
|
142
197
|
type: 'navigation',
|
|
@@ -145,8 +200,8 @@ function runCLI(toolbox, projectName) {
|
|
|
145
200
|
}
|
|
146
201
|
});
|
|
147
202
|
success("You'll be building with ease using NativeWindUI and Expo Router!");
|
|
148
|
-
return [3 /*break*/,
|
|
149
|
-
case
|
|
203
|
+
return [3 /*break*/, 24];
|
|
204
|
+
case 12: return [4 /*yield*/, (0, prompts_1.select)({
|
|
150
205
|
message: 'What would you like to use for Navigation?',
|
|
151
206
|
options: [
|
|
152
207
|
{ value: 'react-navigation', label: 'React Navigation' },
|
|
@@ -155,13 +210,13 @@ function runCLI(toolbox, projectName) {
|
|
|
155
210
|
],
|
|
156
211
|
initialValue: 'expo-router'
|
|
157
212
|
})];
|
|
158
|
-
case
|
|
213
|
+
case 13:
|
|
159
214
|
navigationSelect = _b.sent();
|
|
160
215
|
if ((0, prompts_1.isCancel)(navigationSelect)) {
|
|
161
216
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
162
217
|
return [2 /*return*/, process.exit(0)];
|
|
163
218
|
}
|
|
164
|
-
if (!navigationSelect) return [3 /*break*/,
|
|
219
|
+
if (!navigationSelect) return [3 /*break*/, 19];
|
|
165
220
|
return [4 /*yield*/, (0, prompts_1.select)({
|
|
166
221
|
message: 'What type of navigation would you like to use?',
|
|
167
222
|
options: [
|
|
@@ -170,7 +225,7 @@ function runCLI(toolbox, projectName) {
|
|
|
170
225
|
{ value: 'drawer + tabs', label: 'Drawer + Tabs' }
|
|
171
226
|
]
|
|
172
227
|
})];
|
|
173
|
-
case
|
|
228
|
+
case 14:
|
|
174
229
|
navigationType = _b.sent();
|
|
175
230
|
if ((0, prompts_1.isCancel)(navigationType)) {
|
|
176
231
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
@@ -185,7 +240,7 @@ function runCLI(toolbox, projectName) {
|
|
|
185
240
|
});
|
|
186
241
|
if (!(cliResults.flags.packageManager === 'bun' &&
|
|
187
242
|
defaultPackageManagerVersion &&
|
|
188
|
-
defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/,
|
|
243
|
+
defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/, 16];
|
|
189
244
|
warning('⚠️' + ' ' + " We've detected you're using Bun v".concat(defaultPackageManagerVersion, "."));
|
|
190
245
|
info('');
|
|
191
246
|
warning("Some packages may not work correctly if you continue. We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install."));
|
|
@@ -201,16 +256,16 @@ function runCLI(toolbox, projectName) {
|
|
|
201
256
|
message: "Would you like to continue without switching to Bun v".concat(recommendedBunVersion, "?"),
|
|
202
257
|
initialValue: false
|
|
203
258
|
})];
|
|
204
|
-
case
|
|
259
|
+
case 15:
|
|
205
260
|
shouldContinue = _b.sent();
|
|
206
261
|
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
207
262
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
208
263
|
return [2 /*return*/, process.exit(0)];
|
|
209
264
|
}
|
|
210
265
|
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
211
|
-
return [3 /*break*/,
|
|
212
|
-
case
|
|
213
|
-
if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/,
|
|
266
|
+
return [3 /*break*/, 18];
|
|
267
|
+
case 16:
|
|
268
|
+
if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/, 18];
|
|
214
269
|
warning('⚠️' + ' ' + " We've detected you're using Bun but we are unable to determine which version you are using.");
|
|
215
270
|
info('');
|
|
216
271
|
warning("We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install. If you continue with a version that is not v").concat(recommendedBunVersion, ", some packages may not work correctly."));
|
|
@@ -230,22 +285,21 @@ function runCLI(toolbox, projectName) {
|
|
|
230
285
|
message: "Would you like to continue with your current version of Bun?",
|
|
231
286
|
initialValue: false
|
|
232
287
|
})];
|
|
233
|
-
case
|
|
288
|
+
case 17:
|
|
234
289
|
shouldContinue = _b.sent();
|
|
235
290
|
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
236
291
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
237
292
|
return [2 /*return*/, process.exit(0)];
|
|
238
293
|
}
|
|
239
294
|
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
240
|
-
_b.label =
|
|
241
|
-
case
|
|
242
|
-
case
|
|
295
|
+
_b.label = 18;
|
|
296
|
+
case 18: return [3 /*break*/, 20];
|
|
297
|
+
case 19:
|
|
243
298
|
success("No problem, skipping navigation for now.");
|
|
244
|
-
_b.label =
|
|
245
|
-
case
|
|
299
|
+
_b.label = 20;
|
|
300
|
+
case 20: return [4 /*yield*/, (0, prompts_1.select)({
|
|
246
301
|
message: 'What would you like to use for styling?',
|
|
247
302
|
options: [
|
|
248
|
-
{ value: 'nativewindui', label: 'NativeWindUI' },
|
|
249
303
|
{ value: 'nativewind', label: 'NativeWind' },
|
|
250
304
|
{ value: 'restyle', label: 'Restyle' },
|
|
251
305
|
{ value: 'stylesheet', label: 'StyleSheet' },
|
|
@@ -254,7 +308,7 @@ function runCLI(toolbox, projectName) {
|
|
|
254
308
|
],
|
|
255
309
|
initialValue: 'nativewindui'
|
|
256
310
|
})];
|
|
257
|
-
case
|
|
311
|
+
case 21:
|
|
258
312
|
stylingSelect = _b.sent();
|
|
259
313
|
if ((0, prompts_1.isCancel)(stylingSelect)) {
|
|
260
314
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
@@ -270,7 +324,7 @@ function runCLI(toolbox, projectName) {
|
|
|
270
324
|
{ value: 'firebase', label: 'Firebase' }
|
|
271
325
|
]
|
|
272
326
|
})];
|
|
273
|
-
case
|
|
327
|
+
case 22:
|
|
274
328
|
authenticationSelect = _b.sent();
|
|
275
329
|
if ((0, prompts_1.isCancel)(authenticationSelect)) {
|
|
276
330
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
@@ -286,7 +340,7 @@ function runCLI(toolbox, projectName) {
|
|
|
286
340
|
message: "What would you like to support internationalization?",
|
|
287
341
|
initialValue: false
|
|
288
342
|
})];
|
|
289
|
-
case
|
|
343
|
+
case 23:
|
|
290
344
|
internationalizationSelect = _b.sent();
|
|
291
345
|
if (internationalizationSelect) {
|
|
292
346
|
cliResults.packages.push({ name: 'i18next', type: 'internationalization' });
|
|
@@ -295,11 +349,11 @@ function runCLI(toolbox, projectName) {
|
|
|
295
349
|
else {
|
|
296
350
|
success("No problem, skipping internationalization for now.");
|
|
297
351
|
}
|
|
298
|
-
_b.label =
|
|
299
|
-
case
|
|
352
|
+
_b.label = 24;
|
|
353
|
+
case 24: return [2 /*return*/, cliResults];
|
|
300
354
|
}
|
|
301
355
|
});
|
|
302
356
|
});
|
|
303
357
|
}
|
|
304
358
|
exports.runCLI = runCLI;
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQW1FO0FBRW5FLDBDQUE4QztBQVM5Qyx5REFBc0U7QUFFdEUsSUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFFdkMsU0FBc0IsTUFBTSxDQUFDLE9BQWdCLEVBQUUsV0FBbUI7Ozs7OztvQkFFaEQsT0FBTyxHQUVuQixPQUFPLG1CQUZZLEVBQ3JCLEtBQ0UsT0FBTyxNQUR3QixFQUF4QixJQUFJLFVBQUEsRUFBRSxPQUFPLGFBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDckI7b0JBR04sVUFBVSxHQUFHLDBCQUFjLENBQUM7b0JBRWxDLHNEQUFzRDtvQkFDdEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUVqRCx5QkFBeUI7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUVHLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDeEMsT0FBTyxFQUFFLHFEQUFxRDs0QkFDOUQsWUFBWSxFQUFFLElBQUk7eUJBQ25CLENBQUMsRUFBQTs7b0JBSEksbUJBQW1CLEdBQUcsU0FHMUI7b0JBRUYsSUFBSSxJQUFBLGtCQUFRLEVBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQztvQkFFRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7d0JBQ3hCLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNq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
|
|
359
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQWdGO0FBRWhGLDBDQUE4QztBQVU5Qyx5REFBc0U7QUFFdEUsSUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFFdkMsU0FBc0IsTUFBTSxDQUFDLE9BQWdCLEVBQUUsV0FBbUI7Ozs7OztvQkFFaEQsT0FBTyxHQUVuQixPQUFPLG1CQUZZLEVBQ3JCLEtBQ0UsT0FBTyxNQUR3QixFQUF4QixJQUFJLFVBQUEsRUFBRSxPQUFPLGFBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDckI7b0JBR04sVUFBVSxHQUFHLDBCQUFjLENBQUM7b0JBRWxDLHNEQUFzRDtvQkFDdEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUVqRCx5QkFBeUI7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUVHLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDeEMsT0FBTyxFQUFFLHFEQUFxRDs0QkFDOUQsWUFBWSxFQUFFLElBQUk7eUJBQ25CLENBQUMsRUFBQTs7b0JBSEksbUJBQW1CLEdBQUcsU0FHMUI7b0JBRUYsSUFBSSxJQUFBLGtCQUFRLEVBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO3dCQUNsQyxJQUFBLGdCQUFNLEVBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDMUIsc0JBQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztvQkFDekIsQ0FBQztvQkFFRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7d0JBQ3hCLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNq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
|
package/package.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ThemeToggle } from '@/components/ThemeToggle';
|
|
2
|
-
import { Icon } from '@roninoss/icons';
|
|
3
|
-
import { Tabs } from 'expo-router';
|
|
4
|
-
import { View } from 'react-native';
|
|
5
|
-
|
|
6
|
-
export default function TabsLayout() {
|
|
7
|
-
return (
|
|
8
|
-
<Tabs screenOptions={SCREEN_OPTIONS}>
|
|
9
|
-
<Tabs.Screen name='index' options={INDEX_OPTIONS} />
|
|
10
|
-
<Tabs.Screen name='profile' options={PROFILE_OPTIONS} />
|
|
11
|
-
</Tabs>
|
|
12
|
-
);
|
|
13
|
-
}
|
|
14
|
-
const SCREEN_OPTIONS = {
|
|
15
|
-
headerRight: () => (
|
|
16
|
-
<View className='px-4'>
|
|
17
|
-
<ThemeToggle />
|
|
18
|
-
</View>
|
|
19
|
-
),
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const INDEX_OPTIONS = {
|
|
23
|
-
title: 'Home',
|
|
24
|
-
tabBarIcon({ color, size }: { color: string; size: number }) {
|
|
25
|
-
return <Icon name='home' color={color} size={size} />;
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const PROFILE_OPTIONS = {
|
|
30
|
-
title: 'Profile',
|
|
31
|
-
tabBarIcon({ color, size }: { color: string; size: number }) {
|
|
32
|
-
return <Icon name='person' color={color} size={size} />;
|
|
33
|
-
},
|
|
34
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { router } from 'expo-router';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { Button, View } from 'react-native';
|
|
4
|
-
|
|
5
|
-
export default function HomeScreen() {
|
|
6
|
-
return (
|
|
7
|
-
<View className='flex-1 justify-center items-center'>
|
|
8
|
-
<Button title='Go back' onPress={router.back} />
|
|
9
|
-
</View>
|
|
10
|
-
);
|
|
11
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { router } from 'expo-router';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { Button, View } from 'react-native';
|
|
4
|
-
|
|
5
|
-
export default function ProfileScreen() {
|
|
6
|
-
return (
|
|
7
|
-
<View className='flex-1 justify-center items-center'>
|
|
8
|
-
<Button color={'orange'} title='Go to home tab' onPress={router.back} />
|
|
9
|
-
</View>
|
|
10
|
-
);
|
|
11
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ThemeToggle } from '@/components/ThemeToggle';
|
|
2
|
-
import { useColorScheme } from '@/lib/useColorScheme';
|
|
3
|
-
import { Drawer } from 'expo-router/drawer';
|
|
4
|
-
import { View } from 'react-native';
|
|
5
|
-
|
|
6
|
-
export default function DrawerLayout() {
|
|
7
|
-
const { colors } = useColorScheme();
|
|
8
|
-
return (
|
|
9
|
-
<Drawer
|
|
10
|
-
screenOptions={{
|
|
11
|
-
headerTintColor: colors.foreground,
|
|
12
|
-
headerRight,
|
|
13
|
-
}}
|
|
14
|
-
>
|
|
15
|
-
<Drawer.Screen name='index' options={EXPLORE_OPTIONS} />
|
|
16
|
-
</Drawer>
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function headerRight() {
|
|
21
|
-
return (
|
|
22
|
-
<View className='px-4'>
|
|
23
|
-
<ThemeToggle />
|
|
24
|
-
</View>
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
const EXPLORE_OPTIONS = {
|
|
28
|
-
title: 'Explore',
|
|
29
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { router } from 'expo-router';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { Button, View } from 'react-native';
|
|
4
|
-
|
|
5
|
-
export default function ExploreScreen() {
|
|
6
|
-
return (
|
|
7
|
-
<View className='flex-1 justify-center items-center'>
|
|
8
|
-
<Button title='Go back' onPress={router.back} />
|
|
9
|
-
</View>
|
|
10
|
-
);
|
|
11
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { useColorScheme } from '@/lib/useColorScheme';
|
|
2
|
-
import type {
|
|
3
|
-
MaterialTopTabNavigationEventMap,
|
|
4
|
-
MaterialTopTabNavigationOptions,
|
|
5
|
-
} from '@react-navigation/material-top-tabs';
|
|
6
|
-
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
|
|
7
|
-
import {
|
|
8
|
-
type ParamListBase,
|
|
9
|
-
type TabNavigationState,
|
|
10
|
-
} from '@react-navigation/native';
|
|
11
|
-
import { withLayoutContext } from 'expo-router';
|
|
12
|
-
import { Dimensions } from 'react-native';
|
|
13
|
-
|
|
14
|
-
const { width } = Dimensions.get('screen');
|
|
15
|
-
|
|
16
|
-
const { Navigator } = createMaterialTopTabNavigator();
|
|
17
|
-
|
|
18
|
-
const TopTabs = withLayoutContext<
|
|
19
|
-
MaterialTopTabNavigationOptions,
|
|
20
|
-
typeof Navigator,
|
|
21
|
-
TabNavigationState<ParamListBase>,
|
|
22
|
-
MaterialTopTabNavigationEventMap
|
|
23
|
-
>(Navigator);
|
|
24
|
-
|
|
25
|
-
const SCREENS = [
|
|
26
|
-
{
|
|
27
|
-
name: 'index',
|
|
28
|
-
title: 'For You',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'following',
|
|
32
|
-
title: 'Following',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'my-group',
|
|
36
|
-
title: 'My Group',
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
export default function TopTabsLayout() {
|
|
41
|
-
const { colors } = useColorScheme();
|
|
42
|
-
return (
|
|
43
|
-
<TopTabs
|
|
44
|
-
initialRouteName='index'
|
|
45
|
-
screenOptions={{
|
|
46
|
-
tabBarActiveTintColor: colors.blue,
|
|
47
|
-
tabBarInactiveTintColor: 'grey',
|
|
48
|
-
tabBarLabelStyle: {
|
|
49
|
-
fontSize: 14,
|
|
50
|
-
textTransform: 'capitalize',
|
|
51
|
-
fontWeight: 'bold',
|
|
52
|
-
},
|
|
53
|
-
tabBarIndicatorStyle: {
|
|
54
|
-
backgroundColor: colors.blue,
|
|
55
|
-
},
|
|
56
|
-
tabBarScrollEnabled: true,
|
|
57
|
-
tabBarItemStyle: { width: width / SCREENS.length },
|
|
58
|
-
}}
|
|
59
|
-
>
|
|
60
|
-
{SCREENS.map(({ name, title }) => (
|
|
61
|
-
<TopTabs.Screen
|
|
62
|
-
key={name}
|
|
63
|
-
name={name}
|
|
64
|
-
options={{
|
|
65
|
-
title,
|
|
66
|
-
}}
|
|
67
|
-
/>
|
|
68
|
-
))}
|
|
69
|
-
</TopTabs>
|
|
70
|
-
);
|
|
71
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Text } from '@/components/Text';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export default function FollowingScreen() {
|
|
5
|
-
return (
|
|
6
|
-
<View className='flex-1 justify-center items-center gap-5'>
|
|
7
|
-
<View className='items-center gap-1'>
|
|
8
|
-
<Text variant='title1'>Following Tab</Text>
|
|
9
|
-
<Text>Swipe to see other tabs</Text>
|
|
10
|
-
</View>
|
|
11
|
-
</View>
|
|
12
|
-
);
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Text } from '@/components/Text';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export default function ForYouScreen() {
|
|
5
|
-
return (
|
|
6
|
-
<View className='flex-1 justify-center items-center gap-5'>
|
|
7
|
-
<View className='items-center gap-1'>
|
|
8
|
-
<Text variant='title1'>For You Tab</Text>
|
|
9
|
-
<Text>Swipe to see other tabs</Text>
|
|
10
|
-
</View>
|
|
11
|
-
</View>
|
|
12
|
-
);
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { View } from 'react-native';
|
|
2
|
-
import { Text } from '@/components/Text';
|
|
3
|
-
|
|
4
|
-
export default function MyGroupScreen() {
|
|
5
|
-
return (
|
|
6
|
-
<View className='flex-1 justify-center items-center gap-5'>
|
|
7
|
-
<View className='items-center gap-1'>
|
|
8
|
-
<Text variant='title1'>My Group Tab</Text>
|
|
9
|
-
<Text>Swipe to see other tabs</Text>
|
|
10
|
-
</View>
|
|
11
|
-
</View>
|
|
12
|
-
);
|
|
13
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { useColorScheme } from '@/lib/useColorScheme';
|
|
2
|
-
import { cn } from '@/lib/utils';
|
|
3
|
-
import { COLORS } from '@/theme/colors';
|
|
4
|
-
import { Icon } from '@roninoss/icons';
|
|
5
|
-
import { Appearance, Pressable, View } from 'react-native';
|
|
6
|
-
import Animated, {
|
|
7
|
-
LayoutAnimationConfig,
|
|
8
|
-
ZoomInRotate,
|
|
9
|
-
} from 'react-native-reanimated';
|
|
10
|
-
|
|
11
|
-
export function ThemeToggle() {
|
|
12
|
-
const { colorScheme, toggleColorScheme } = useColorScheme();
|
|
13
|
-
return (
|
|
14
|
-
<LayoutAnimationConfig skipEntering>
|
|
15
|
-
<Animated.View
|
|
16
|
-
className='h-6 w-6 items-center justify-center'
|
|
17
|
-
key={`toggle-${colorScheme}`}
|
|
18
|
-
entering={ZoomInRotate}
|
|
19
|
-
>
|
|
20
|
-
<Pressable
|
|
21
|
-
onPress={() => {
|
|
22
|
-
// ColorScheme is set with `Appearance` as well for the iOS header search placeholder text: https://github.com/software-mansion/react-native-screens/discussions/1758
|
|
23
|
-
Appearance.setColorScheme(
|
|
24
|
-
colorScheme === 'dark' ? 'light' : 'dark'
|
|
25
|
-
);
|
|
26
|
-
toggleColorScheme();
|
|
27
|
-
}}
|
|
28
|
-
className='opacity-80'
|
|
29
|
-
>
|
|
30
|
-
{colorScheme === 'dark'
|
|
31
|
-
? ({ pressed }) => (
|
|
32
|
-
<View className={cn('px-0.5', pressed && 'opacity-50')}>
|
|
33
|
-
<Icon
|
|
34
|
-
namingScheme='sfSymbol'
|
|
35
|
-
name='moon.stars'
|
|
36
|
-
color={COLORS.white}
|
|
37
|
-
/>
|
|
38
|
-
</View>
|
|
39
|
-
)
|
|
40
|
-
: ({ pressed }) => (
|
|
41
|
-
<View className={cn('px-0.5', pressed && 'opacity-50')}>
|
|
42
|
-
<Icon
|
|
43
|
-
namingScheme='sfSymbol'
|
|
44
|
-
name='sun.min'
|
|
45
|
-
color={COLORS.black}
|
|
46
|
-
/>
|
|
47
|
-
</View>
|
|
48
|
-
)}
|
|
49
|
-
</Pressable>
|
|
50
|
-
</Animated.View>
|
|
51
|
-
</LayoutAnimationConfig>
|
|
52
|
-
);
|
|
53
|
-
}
|
|
File without changes
|