create-expo-stack 2.1.21 → 2.1.22
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/bin/create-expo-stack.js +2 -0
- package/build/cli.js +6 -4
- package/build/commands/create-expo-stack.js +51 -19
- package/build/constants.js +4 -4
- package/build/templates/packages/expo-router/expo-env.d.ts +1 -1
- package/build/templates/packages/expo-router/index.js +1 -1
- package/build/templates/packages/expo-router/index.ts +1 -1
- package/build/templates/packages/expo-router/metro.config.js +3 -3
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +69 -71
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +56 -56
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +97 -97
- package/build/templates/packages/nativewind/app.d.ts +1 -1
- package/build/templates/packages/react-navigation/App.tsx.ejs +27 -27
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +109 -95
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +60 -57
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +98 -95
- package/build/templates/packages/tamagui/tamagui.config.ts.ejs +48 -42
- package/build/types/cli.d.ts +4 -1
- package/build/types/constants.d.ts +1 -1
- package/build/types/templates/packages/expo-router/index.d.ts +1 -1
- package/build/types/types.d.ts +2 -2
- package/build/types/utilities/configureProjectFiles.d.ts +2 -2
- package/build/types/utilities/generateProjectFiles.d.ts +2 -2
- package/build/types/utilities/getPackageManager.d.ts +2 -2
- package/build/types/utilities/index.d.ts +9 -9
- package/build/types/utilities/printOutput.d.ts +2 -2
- package/build/types/utilities/renderTitle.d.ts +1 -1
- package/build/types/utilities/runCLI.d.ts +2 -2
- package/build/types/utilities/runIgnite.d.ts +1 -1
- package/build/types/utilities/usePackage.d.ts +1 -1
- package/build/types.js +11 -2
- package/build/utilities/bumpVersion.js +1 -1
- package/build/utilities/configureProjectFiles.js +8 -12
- package/build/utilities/generateProjectFiles.js +5 -5
- package/build/utilities/getPackageManager.js +9 -10
- package/build/utilities/index.js +1 -1
- package/build/utilities/printOutput.js +4 -3
- package/build/utilities/renderTitle.js +15 -13
- package/build/utilities/runCLI.js +14 -14
- package/build/utilities/runIgnite.js +1 -1
- package/build/utilities/showHelp.js +29 -29
- package/build/utilities/usePackage.js +1 -1
- package/package.json +36 -48
- package/LICENSE +0 -21
- package/bin/create-expo-stack +0 -21
- package/build/extensions/cli-extension.js +0 -17
- package/build/types/extensions/cli-extension.d.ts +0 -1
- package/docs/commands.md +0 -3
- package/docs/plugins.md +0 -49
- package/readme.md +0 -104
package/build/cli.js
CHANGED
|
@@ -36,16 +36,18 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.run = void 0;
|
|
39
40
|
var gluegun_1 = require("gluegun");
|
|
40
41
|
/**
|
|
41
42
|
* Create the cli and kick it off
|
|
42
43
|
*/
|
|
43
|
-
function run(
|
|
44
|
+
function run() {
|
|
44
45
|
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
-
var cli, toolbox;
|
|
46
|
+
var argv, cli, toolbox;
|
|
46
47
|
return __generator(this, function (_a) {
|
|
47
48
|
switch (_a.label) {
|
|
48
49
|
case 0:
|
|
50
|
+
argv = process.env.argv;
|
|
49
51
|
cli = (0, gluegun_1.build)()
|
|
50
52
|
.brand('create-expo-stack')
|
|
51
53
|
.src(__dirname)
|
|
@@ -66,5 +68,5 @@ function run(argv) {
|
|
|
66
68
|
});
|
|
67
69
|
});
|
|
68
70
|
}
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
exports.run = run;
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBK0I7QUFFL0I7O0dBRUc7QUFDSCxTQUFzQixHQUFHOzs7Ozs7b0JBQ2pCLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQTtvQkFHdkIsR0FBRyxHQUFHLElBQUEsZUFBSyxHQUFFO3lCQUNoQixLQUFLLENBQUMsbUJBQW1CLENBQUM7eUJBQzFCLEdBQUcsQ0FBQyxTQUFTLENBQUM7eUJBQ2QsT0FBTyxDQUFDLGdCQUFnQixFQUFFO3dCQUN6QixRQUFRLEVBQUUscUJBQXFCO3dCQUMvQixNQUFNLEVBQUUsSUFBSTtxQkFDYixDQUFDO3lCQUNELE9BQU8sRUFBRSxDQUFDLGlEQUFpRDt5QkFDM0QsTUFBTSxFQUFFLENBQUE7b0JBS0sscUJBQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBRW5DLHFDQUFxQztzQkFGRjs7b0JBQTdCLE9BQU8sR0FBRyxTQUFtQjtvQkFFbkMscUNBQXFDO29CQUNyQyxzQkFBTyxPQUFPLEVBQUE7Ozs7Q0FDZjtBQXJCRCxrQkFxQkMifQ==
|
|
@@ -57,15 +57,26 @@ var command = {
|
|
|
57
57
|
case 1:
|
|
58
58
|
_c.trys.push([1, 10, , 11]);
|
|
59
59
|
// Validation: check if the user passed in the tabs option without passing in either expo router or react navigation. If so, throw an error
|
|
60
|
-
if (options.tabs &&
|
|
61
|
-
|
|
60
|
+
if (options.tabs &&
|
|
61
|
+
!options.reactNavigation &&
|
|
62
|
+
!options['react-navigation'] &&
|
|
63
|
+
!options.reactnavigation &&
|
|
64
|
+
!options.expoRouter &&
|
|
65
|
+
!options['expo-router'] &&
|
|
66
|
+
!options.exporouter) {
|
|
67
|
+
throw new Error('You must pass in either --react-navigation or --expo-router if you want to use the --tabs option');
|
|
62
68
|
}
|
|
63
|
-
return [4 /*yield*/, (0, utilities_1.renderTitle)(toolbox)
|
|
69
|
+
return [4 /*yield*/, (0, utilities_1.renderTitle)(toolbox)
|
|
70
|
+
// TODO: this is hacky, figure out a way to do this better
|
|
71
|
+
// set timeout for 1 second so that the title can render before the CLI runs
|
|
72
|
+
];
|
|
64
73
|
case 2:
|
|
65
74
|
_c.sent();
|
|
66
75
|
// TODO: this is hacky, figure out a way to do this better
|
|
67
76
|
// set timeout for 1 second so that the title can render before the CLI runs
|
|
68
|
-
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })
|
|
77
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 200); })
|
|
78
|
+
// Set the default options
|
|
79
|
+
];
|
|
69
80
|
case 3:
|
|
70
81
|
// TODO: this is hacky, figure out a way to do this better
|
|
71
82
|
// set timeout for 1 second so that the title can render before the CLI runs
|
|
@@ -77,7 +88,8 @@ var command = {
|
|
|
77
88
|
_c.sent();
|
|
78
89
|
return [3 /*break*/, 9];
|
|
79
90
|
case 5:
|
|
80
|
-
useDefault = (
|
|
91
|
+
useDefault = (options.default !== undefined && options.default) ||
|
|
92
|
+
(options.d !== undefined && options.d);
|
|
81
93
|
skipCLI = options.nonInteractive;
|
|
82
94
|
useBlankTypescript = options.blank || false;
|
|
83
95
|
optionsPassedIn = types_1.availablePackages.some(function (condition) { return options[condition] !== undefined; });
|
|
@@ -90,33 +102,53 @@ var command = {
|
|
|
90
102
|
case 7:
|
|
91
103
|
// @internal Update the cliResults with the options passed in via the command
|
|
92
104
|
// This is used for testing purposes only
|
|
93
|
-
if (options.reactNavigation ||
|
|
105
|
+
if (options.reactNavigation ||
|
|
106
|
+
options['react-navigation'] ||
|
|
107
|
+
options.reactnavigation) {
|
|
94
108
|
// Add react-navigation package
|
|
95
109
|
cliResults.packages.push({
|
|
96
|
-
name:
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
name: 'react-navigation',
|
|
111
|
+
type: 'navigation',
|
|
112
|
+
options: {
|
|
113
|
+
type: options.tabs ? 'tabs' : 'stack',
|
|
114
|
+
},
|
|
99
115
|
});
|
|
100
116
|
}
|
|
101
|
-
if (options.expoRouter ||
|
|
117
|
+
if (options.expoRouter ||
|
|
118
|
+
options['expo-router'] ||
|
|
119
|
+
options.exporouter) {
|
|
102
120
|
// Add expo-router package
|
|
103
121
|
cliResults.packages.push({
|
|
104
|
-
name:
|
|
105
|
-
|
|
106
|
-
|
|
122
|
+
name: 'expo-router',
|
|
123
|
+
type: 'navigation',
|
|
124
|
+
options: {
|
|
125
|
+
type: options.tabs ? 'tabs' : 'stack',
|
|
126
|
+
},
|
|
107
127
|
});
|
|
108
128
|
}
|
|
109
129
|
if (options.nativewind) {
|
|
110
130
|
// Add nativewind package
|
|
111
|
-
cliResults.packages.push({
|
|
131
|
+
cliResults.packages.push({
|
|
132
|
+
name: 'nativewind',
|
|
133
|
+
type: 'styling',
|
|
134
|
+
options: {},
|
|
135
|
+
});
|
|
112
136
|
}
|
|
113
137
|
if (options.tamagui) {
|
|
114
138
|
// Add tamagui package
|
|
115
|
-
cliResults.packages.push({
|
|
139
|
+
cliResults.packages.push({
|
|
140
|
+
name: 'tamagui',
|
|
141
|
+
type: 'styling',
|
|
142
|
+
options: {},
|
|
143
|
+
});
|
|
116
144
|
}
|
|
117
145
|
if (options.stylesheet || options.stylesheets) {
|
|
118
146
|
// Add stylesheet package
|
|
119
|
-
cliResults.packages.push({
|
|
147
|
+
cliResults.packages.push({
|
|
148
|
+
name: 'stylesheet',
|
|
149
|
+
type: 'styling',
|
|
150
|
+
options: {},
|
|
151
|
+
});
|
|
120
152
|
}
|
|
121
153
|
// Destructure the results but set the projectName if the first param is passed in
|
|
122
154
|
if (first) {
|
|
@@ -126,8 +158,8 @@ var command = {
|
|
|
126
158
|
info('Your project configuration:');
|
|
127
159
|
info(util.inspect(cliResults, false, null, true /* enable colors */));
|
|
128
160
|
packages = cliResults.packages;
|
|
129
|
-
navigationPackage = packages.find(function (p) { return p.type ===
|
|
130
|
-
stylingPackage = packages.find(function (p) { return p.type ===
|
|
161
|
+
navigationPackage = packages.find(function (p) { return p.type === 'navigation'; }) || undefined;
|
|
162
|
+
stylingPackage = packages.find(function (p) { return p.type === 'styling'; });
|
|
131
163
|
files = [];
|
|
132
164
|
files = (0, utilities_1.configureProjectFiles)(files, navigationPackage, stylingPackage, toolbox);
|
|
133
165
|
formattedFiles = [];
|
|
@@ -151,4 +183,4 @@ var command = {
|
|
|
151
183
|
}); },
|
|
152
184
|
};
|
|
153
185
|
exports.default = command;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsMENBUXFCO0FBQ3JCLDBDQUE2QztBQUM3QyxrQ0FBd0Q7QUFFeEQsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsVUFBTyxPQUFPOzs7OztvQkFFZixLQUVFLE9BQU8sV0FGcUIsRUFBaEIsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFBLEVBQzVCLEtBQ0UsT0FBTyxNQUQwQixFQUExQixJQUFJLFVBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDeEI7b0JBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO3dCQUVsQyxzQkFBTTtxQkFDUDs7OztvQkFFQywySUFBMkk7b0JBQzNJLElBQ0UsT0FBTyxDQUFDLElBQUk7d0JBQ1osQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDeEIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7d0JBQzVCLENBQUMsT0FBTyxDQUFDLGVBQWU7d0JBQ3hCLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ25CLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzt3QkFDdkIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQjt3QkFDQSxNQUFNLElBQUksS0FBSyxDQUNiLGtHQUFrRyxDQUNuRyxDQUFBO3FCQUNGO29CQUVELHFCQUFNLElBQUEsdUJBQVcsRUFBQyxPQUFPLENBQUM7d0JBRTFCLDBEQUEwRDt3QkFDMUQsNEVBQTRFO3NCQUhsRDs7b0JBQTFCLFNBQTBCLENBQUE7b0JBRTFCLDBEQUEwRDtvQkFDMUQsNEVBQTRFO29CQUM1RSxxQkFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQXhCLENBQXdCLENBQUM7d0JBRXhELDBCQUEwQjtzQkFGOEI7O29CQUZ4RCwwREFBMEQ7b0JBQzFELDRFQUE0RTtvQkFDNUUsU0FBd0QsQ0FBQTtvQkFHcEQsVUFBVSxHQUFlLDBCQUFjLENBQUE7eUJBR3ZDLE9BQU8sQ0FBQyxNQUFNLEVBQWQsd0JBQWM7b0JBQ2hCLHFCQUFNLElBQUEscUJBQVMsRUFBQyxPQUFPLENBQUMsRUFBQTs7b0JBQXhCLFNBQXdCLENBQUE7OztvQkFHbEIsVUFBVSxHQUNkLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQzt3QkFDbEQsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ2xDLE9BQU8sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFBO29CQUNoQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQTtvQkFFM0MsZUFBZSxHQUFHLHlCQUFpQixDQUFDLElBQUksQ0FDNUMsVUFBQyxTQUFTLElBQUssT0FBQSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFoQyxDQUFnQyxDQUNoRCxDQUFBO3lCQUVHLENBQUMsQ0FBQyxVQUFVLElBQUksZUFBZSxJQUFJLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxFQUFqRSx3QkFBaUU7b0JBRXRELHFCQUFNLElBQUEsa0JBQU0sRUFBQyxPQUFPLENBQUMsRUFBQTs7b0JBRGxDLDRDQUE0QztvQkFDNUMsVUFBVSxHQUFHLFNBQXFCLENBQUE7OztvQkFHcEMsNkVBQTZFO29CQUM3RSx5Q0FBeUM7b0JBQ3pDLElBQ0UsT0FBTyxDQUFDLGVBQWU7d0JBQ3ZCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDM0IsT0FBTyxDQUFDLGVBQWUsRUFDdkI7d0JBQ0EsK0JBQStCO3dCQUMvQixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDdkIsSUFBSSxFQUFFLGtCQUFrQjs0QkFDeEIsSUFBSSxFQUFFLFlBQVk7NEJBQ2xCLE9BQU8sRUFBRTtnQ0FDUCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPOzZCQUN0Qzt5QkFDRixDQUFDLENBQUE7cUJBQ0g7b0JBQ0QsSUFDRSxPQUFPLENBQUMsVUFBVTt3QkFDbEIsT0FBTyxDQUFDLGFBQWEsQ0FBQzt3QkFDdEIsT0FBTyxDQUFDLFVBQVUsRUFDbEI7d0JBQ0EsMEJBQTBCO3dCQUMxQixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDdkIsSUFBSSxFQUFFLGFBQWE7NEJBQ25CLElBQUksRUFBRSxZQUFZOzRCQUNsQixPQUFPLEVBQUU7Z0NBQ1AsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTzs2QkFDdEM7eUJBQ0YsQ0FBQyxDQUFBO3FCQUNIO29CQUNELElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDdEIseUJBQXlCO3dCQUN6QixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDdkIsSUFBSSxFQUFFLFlBQVk7NEJBQ2xCLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxFQUFFO3lCQUNaLENBQUMsQ0FBQTtxQkFDSDtvQkFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7d0JBQ25CLHNCQUFzQjt3QkFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ3ZCLElBQUksRUFBRSxTQUFTOzRCQUNmLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxFQUFFO3lCQUNaLENBQUMsQ0FBQTtxQkFDSDtvQkFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDN0MseUJBQXlCO3dCQUN6QixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDdkIsSUFBSSxFQUFFLFlBQVk7NEJBQ2xCLElBQUksRUFBRSxTQUFTOzRCQUNmLE9BQU8sRUFBRSxFQUFFO3lCQUNaLENBQUMsQ0FBQTtxQkFDSDtvQkFFRCxrRkFBa0Y7b0JBQ2xGLElBQUksS0FBSyxFQUFFO3dCQUNULFVBQVUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO3FCQUMvQjtvQkFFRCw4Q0FBOEM7b0JBRTlDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO29CQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO29CQUM3RCxRQUFRLEdBQUssVUFBVSxTQUFmLENBQWU7b0JBSXpCLGlCQUFpQixHQUNyQixRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQXZCLENBQXVCLENBQUMsSUFBSSxTQUFTLENBQUE7b0JBQ3RELGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQXBCLENBQW9CLENBQUMsQ0FBQTtvQkFFN0QsS0FBSyxHQUFhLEVBQUUsQ0FBQTtvQkFFeEIsS0FBSyxHQUFHLElBQUEsaUNBQXFCLEVBQzNCLEtBQUssRUFDTCxpQkFBaUIsRUFDakIsY0FBYyxFQUNkLE9BQU8sQ0FDUixDQUFBO29CQUdHLGNBQWMsR0FBVSxFQUFFLENBQUE7b0JBRTlCLGNBQWMsR0FBRyxJQUFBLGdDQUFvQixFQUNuQyxVQUFVLEVBQ1YsS0FBSyxFQUNMLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsT0FBTyxFQUNQLGNBQWMsQ0FDZixDQUFBO29CQUVELHFCQUFNLElBQUEsdUJBQVcsRUFBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxFQUFBOztvQkFBdEQsU0FBc0QsQ0FBQTs7Ozs7b0JBR3hELHlCQUF5QjtvQkFFekIsSUFBSSxDQUFDLHFFQUEyRCxDQUFDLENBQUE7b0JBQ2pFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDUixJQUFJLENBQUMsaUJBQVUsT0FBSyxDQUFFLENBQUMsQ0FBQTtvQkFDdkIsSUFBSSxDQUNGLDJIQUEySCxDQUM1SCxDQUFBOzs7OztTQUVKO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
package/build/constants.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.defaultOptions = exports.DEFAULT_APP_NAME = exports.TITLE_TEXT = void 0;
|
|
4
|
-
exports.TITLE_TEXT =
|
|
5
|
-
exports.DEFAULT_APP_NAME =
|
|
4
|
+
exports.TITLE_TEXT = 'create expo stack';
|
|
5
|
+
exports.DEFAULT_APP_NAME = 'my-expo-app';
|
|
6
6
|
exports.defaultOptions = {
|
|
7
7
|
projectName: exports.DEFAULT_APP_NAME,
|
|
8
8
|
packages: [],
|
|
9
9
|
flags: {
|
|
10
10
|
noGit: false,
|
|
11
11
|
noInstall: false,
|
|
12
|
-
importAlias:
|
|
12
|
+
importAlias: '~/',
|
|
13
13
|
},
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQTtBQUVoQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQTtBQUVoQyxRQUFBLGNBQWMsR0FBZTtJQUN4QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtDQUNGLENBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
require("expo-router/entry");
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3BhY2thZ2VzL2V4cG8tcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTBCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 'expo-router/entry'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Learn more https://docs.expo.io/guides/customizing-metro
|
|
2
|
-
const { getDefaultConfig } = require('expo/metro-config')
|
|
2
|
+
const { getDefaultConfig } = require('expo/metro-config')
|
|
3
3
|
|
|
4
4
|
/** @type {import('expo/metro-config').MetroConfig} */
|
|
5
5
|
// eslint-disable-next-line no-undef
|
|
6
6
|
const config = getDefaultConfig(__dirname, {
|
|
7
7
|
// [Web-only]: Enables CSS support in Metro.
|
|
8
8
|
isCSSEnabled: true,
|
|
9
|
-
})
|
|
9
|
+
})
|
|
10
10
|
|
|
11
|
-
module.exports = config
|
|
11
|
+
module.exports = config
|
|
@@ -1,89 +1,87 @@
|
|
|
1
1
|
import { Feather } from "@expo/vector-icons";
|
|
2
2
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { Stack, useRouter } from "expo-router";
|
|
4
|
+
import { Text, TouchableOpacity, View } from "react-native";
|
|
5
5
|
<% } else if (props.stylingPackage?.name === "tamagui") { %>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import React, { useEffect } from "react";
|
|
7
|
+
import { TamaguiProvider, Button, Text } from "tamagui";
|
|
8
|
+
import { useFonts } from "expo-font";
|
|
9
|
+
import { Stack, useRouter, SplashScreen } from "expo-router";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
import config from '../tamagui.config'
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
SplashScreen.preventAutoHideAsync();
|
|
14
14
|
<% } else { %>
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
16
|
+
import { Stack, useRouter } from "expo-router";
|
|
17
17
|
<% } %>
|
|
18
18
|
|
|
19
19
|
export default function Layout() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
const router = useRouter();
|
|
21
|
+
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
22
|
+
const BackButton = () => (
|
|
23
|
+
<TouchableOpacity onPress={router.back}>
|
|
24
|
+
<View className={styles.backButton}>
|
|
25
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
26
|
+
<Text className={styles.backButtonText}>Back</Text>
|
|
27
|
+
</View>
|
|
28
|
+
</TouchableOpacity>
|
|
29
|
+
);
|
|
30
|
+
<% } else if (props.stylingPackage?.name === "tamagui") { %>
|
|
31
|
+
const [loaded] = useFonts({
|
|
32
|
+
Inter: require("@tamagui/font-inter/otf/Inter-Medium.otf"),
|
|
33
|
+
InterBold: require("@tamagui/font-inter/otf/Inter-Bold.otf")
|
|
34
|
+
});
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (loaded) {
|
|
38
|
+
SplashScreen.hideAsync();
|
|
39
|
+
}
|
|
40
|
+
}, [loaded]);
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
if (!loaded) return null;
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
const BackButton = () => (
|
|
45
|
+
<Button unstyled flexDirection="row" backgroundColor="transparent" paddingLeft={0} pressStyle={{ opacity: 0.5 }} onPress={router.back} icon={<Feather name="chevron-left" size={16} color="#007AFF" />}><Text color="#007AFF">Back</Text></Button>
|
|
46
|
+
)
|
|
47
|
+
<% } else { %>
|
|
48
|
+
const BackButton = () => (
|
|
49
|
+
<TouchableOpacity onPress={router.back}>
|
|
50
|
+
<View style={styles.backButton}>
|
|
51
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
52
|
+
<Text style={styles.backButtonText}>Back</Text>
|
|
53
|
+
</View>
|
|
54
|
+
</TouchableOpacity>
|
|
55
|
+
);
|
|
56
|
+
<% } %>
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<% } %>
|
|
71
|
-
);
|
|
58
|
+
return (
|
|
59
|
+
<% if (props.stylingPackage?.name === "tamagui") { %>
|
|
60
|
+
<TamaguiProvider config={config}>
|
|
61
|
+
<% } %>
|
|
62
|
+
<Stack>
|
|
63
|
+
<Stack.Screen name="index" options={{ title: "Overview" }} />
|
|
64
|
+
<Stack.Screen name="details" options={{ title: "Details", headerLeft: () => <BackButton /> }} />
|
|
65
|
+
</Stack>
|
|
66
|
+
<% if (props.stylingPackage?.name === "tamagui") { %>
|
|
67
|
+
</TamaguiProvider>
|
|
68
|
+
<% } %>
|
|
69
|
+
);
|
|
72
70
|
}
|
|
73
71
|
|
|
74
72
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
const styles = {
|
|
74
|
+
backButton: "flex-row",
|
|
75
|
+
backButtonText: "text-blue-500 ml-1",
|
|
76
|
+
};
|
|
79
77
|
<% } else if (props.stylingPackage?.name === "stylesheet") { %>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
const styles = StyleSheet.create({
|
|
79
|
+
backButton: {
|
|
80
|
+
flexDirection: "row",
|
|
81
|
+
},
|
|
82
|
+
backButtonText: {
|
|
83
|
+
color: "#007AFF",
|
|
84
|
+
marginLeft: 4,
|
|
85
|
+
},
|
|
86
|
+
});
|
|
89
87
|
<% } %>
|
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
2
|
-
|
|
2
|
+
import { View, Text } from "react-native";
|
|
3
3
|
<% } else if (props.stylingPackage?.name === "tamagui") { %>
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { YStack } from "tamagui";
|
|
5
|
+
import { Container, Main, Subtitle, Title } from "../tamagui.config";
|
|
6
6
|
<% } else { %>
|
|
7
|
-
|
|
7
|
+
import { StyleSheet, View, Text } from "react-native";
|
|
8
8
|
<% } %>
|
|
9
9
|
import { useLocalSearchParams } from "expo-router";
|
|
10
10
|
|
|
11
11
|
export default function Details() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
12
|
+
const { name } = useLocalSearchParams();
|
|
13
|
+
return (
|
|
14
|
+
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
15
|
+
<View className={styles.container}>
|
|
16
|
+
<View className={styles.main}>
|
|
17
|
+
<Text className={styles.title}>Details</Text>
|
|
18
|
+
<Text className={styles.subtitle}>Showing details for user {name}.</Text>
|
|
19
|
+
</View>
|
|
20
|
+
</View>
|
|
21
|
+
<% } else if (props.stylingPackage?.name === "tamagui") { %>
|
|
22
|
+
<Container>
|
|
23
|
+
<Main>
|
|
24
|
+
<YStack>
|
|
25
|
+
<Title>Details</Title>
|
|
26
|
+
<Subtitle>Showing details for user {name}.</Subtitle>
|
|
27
|
+
</YStack>
|
|
28
|
+
</Main>
|
|
29
|
+
</Container>
|
|
30
|
+
<% } else { %>
|
|
31
|
+
<View style={styles.container}>
|
|
32
|
+
<View style={styles.main}>
|
|
33
|
+
<Text style={styles.title}>Details</Text>
|
|
34
|
+
<Text style={styles.subtitle}>Showing details for user {name}.</Text>
|
|
35
|
+
</View>
|
|
36
|
+
</View>
|
|
37
|
+
<% } %>
|
|
38
|
+
);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
const styles = {
|
|
43
|
+
container: "flex-1 p-6",
|
|
44
|
+
main: "flex-1 max-w-[960]",
|
|
45
|
+
title: "text-[64px] font-bold",
|
|
46
|
+
subtitle: "text-4xl text-gray-700",
|
|
47
|
+
};
|
|
48
48
|
<% } else if (props.stylingPackage?.name === "stylesheet") { %>
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
const styles = StyleSheet.create({
|
|
50
|
+
container: {
|
|
51
|
+
flex: 1,
|
|
52
|
+
padding: 24,
|
|
53
|
+
},
|
|
54
|
+
main: {
|
|
55
|
+
flex: 1,
|
|
56
|
+
maxWidth: 960,
|
|
57
|
+
marginHorizontal: "auto",
|
|
58
|
+
},
|
|
59
|
+
title: {
|
|
60
|
+
fontSize: 64,
|
|
61
|
+
fontWeight: "bold",
|
|
62
|
+
},
|
|
63
|
+
subtitle: {
|
|
64
|
+
fontSize: 36,
|
|
65
|
+
color: "#38434D",
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
68
|
<% } %>
|