create-expo-stack 2.1.21 → 2.1.24

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.
Files changed (50) hide show
  1. package/bin/create-expo-stack.js +2 -0
  2. package/build/cli.js +6 -4
  3. package/build/commands/create-expo-stack.js +51 -19
  4. package/build/constants.js +4 -4
  5. package/build/templates/packages/expo-router/expo-env.d.ts +1 -1
  6. package/build/templates/packages/expo-router/index.js +1 -1
  7. package/build/templates/packages/expo-router/index.ts +1 -1
  8. package/build/templates/packages/expo-router/metro.config.js +3 -3
  9. package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +69 -71
  10. package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +56 -56
  11. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +97 -97
  12. package/build/templates/packages/nativewind/app.d.ts +1 -1
  13. package/build/templates/packages/react-navigation/App.tsx.ejs +27 -27
  14. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +109 -95
  15. package/build/templates/packages/react-navigation/screens/details.tsx.ejs +60 -57
  16. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +98 -95
  17. package/build/templates/packages/tamagui/tamagui.config.ts.ejs +48 -42
  18. package/build/types/cli.d.ts +4 -1
  19. package/build/types/constants.d.ts +1 -1
  20. package/build/types/templates/packages/expo-router/index.d.ts +1 -1
  21. package/build/types/types.d.ts +2 -2
  22. package/build/types/utilities/configureProjectFiles.d.ts +2 -2
  23. package/build/types/utilities/generateProjectFiles.d.ts +2 -2
  24. package/build/types/utilities/getPackageManager.d.ts +2 -2
  25. package/build/types/utilities/index.d.ts +9 -9
  26. package/build/types/utilities/printOutput.d.ts +2 -2
  27. package/build/types/utilities/renderTitle.d.ts +1 -1
  28. package/build/types/utilities/runCLI.d.ts +2 -2
  29. package/build/types/utilities/runIgnite.d.ts +1 -1
  30. package/build/types/utilities/usePackage.d.ts +1 -1
  31. package/build/types.js +11 -2
  32. package/build/utilities/bumpVersion.js +1 -1
  33. package/build/utilities/configureProjectFiles.js +8 -12
  34. package/build/utilities/generateProjectFiles.js +5 -5
  35. package/build/utilities/getPackageManager.js +9 -10
  36. package/build/utilities/index.js +1 -1
  37. package/build/utilities/printOutput.js +4 -3
  38. package/build/utilities/renderTitle.js +15 -13
  39. package/build/utilities/runCLI.js +14 -14
  40. package/build/utilities/runIgnite.js +1 -1
  41. package/build/utilities/showHelp.js +29 -29
  42. package/build/utilities/usePackage.js +1 -1
  43. package/package.json +36 -48
  44. package/readme.md +9 -2
  45. package/LICENSE +0 -21
  46. package/bin/create-expo-stack +0 -21
  47. package/build/extensions/cli-extension.js +0 -17
  48. package/build/types/extensions/cli-extension.d.ts +0 -1
  49. package/docs/commands.md +0 -3
  50. package/docs/plugins.md +0 -49
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ require(`${__dirname}/../build/cli`).run(process.argv)
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(argv) {
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
- module.exports = { run: run };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUErQjtBQUUvQjs7R0FFRztBQUNILFNBQWUsR0FBRyxDQUFDLElBQUk7Ozs7OztvQkFFZixHQUFHLEdBQUcsSUFBQSxlQUFLLEdBQUU7eUJBQ2hCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDMUIsR0FBRyxDQUFDLFNBQVMsQ0FBQzt5QkFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxxQkFBcUI7d0JBQy9CLE1BQU0sRUFBRSxJQUFJO3FCQUNiLENBQUM7eUJBQ0QsT0FBTyxFQUFFLENBQUMsaURBQWlEO3lCQUMzRCxNQUFNLEVBQUUsQ0FBQTtvQkFLSyxxQkFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFFbkMscUNBQXFDO3NCQUZGOztvQkFBN0IsT0FBTyxHQUFHLFNBQW1CO29CQUVuQyxxQ0FBcUM7b0JBQ3JDLHNCQUFPLE9BQU8sRUFBQTs7OztDQUNmO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUEifQ==
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 && !options.reactNavigation && !options['react-navigation'] && !options.reactnavigation && !options.expoRouter && !options['expo-router'] && !options.exporouter) {
61
- throw new Error("You must pass in either --react-navigation or --expo-router if you want to use the --tabs option");
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 = ((options.default !== undefined && options.default) || (options.d !== undefined && options.d));
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 || options['react-navigation'] || 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: "react-navigation", type: 'navigation', options: {
97
- type: options.tabs ? "tabs" : "stack"
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 || options['expo-router'] || 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: "expo-router", type: 'navigation', options: {
105
- type: options.tabs ? "tabs" : "stack"
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({ name: "nativewind", type: 'styling', options: {} });
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({ name: "tamagui", type: 'styling', options: {} });
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({ name: "stylesheet", type: 'styling', options: {} });
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 === "navigation"; }) || undefined;
130
- stylingPackage = packages.find(function (p) { return p.type === "styling"; });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsMENBUXNCO0FBQ3RCLDBDQUE4QztBQUM5QyxrQ0FBeUQ7QUFFekQsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsVUFBTyxPQUFPOzs7OztvQkFFZixLQUVFLE9BQU8sV0FGcUIsRUFBaEIsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFBLEVBQzVCLEtBQ0UsT0FBTyxNQUQwQixFQUExQixJQUFJLFVBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDdkI7b0JBQ1osSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO3dCQUVsQyxzQkFBTztxQkFDUjs7OztvQkFFQywySUFBMkk7b0JBQzNJLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDakwsTUFBTSxJQUFJLEtBQUssQ0FBQyxrR0FBa0csQ0FBQyxDQUFBO3FCQUNwSDtvQkFFRCxxQkFBTSxJQUFBLHVCQUFXLEVBQUMs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
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsMENBUXFCO0FBQ3JCLDBDQUE2QztBQUM3QyxrQ0FBd0Q7QUFFeEQsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsVUFBTyxPQUFPOzs7OztvQkFFZixLQUVFLE9BQU8sV0FGcUIsRUFBaEIsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFBLEVBQzVCLEtBQ0UsT0FBTyxNQUQwQixFQUExQixJQUFJLFVBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDeEI7b0JBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO3dCQUVsQyxzQkFBTTtxQkFDUDs7OztvQkFFQywySUFBMkk7b0JBQzNJLElBQ0UsT0FBTyxDQUFDLElBQUk7d0JBQ1osQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDeEIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7d0JBQzVCLENBQUMsT0FBTyxDQUFDLGVBQWU7d0JBQ3hCLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ25CLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzt3QkFDdkIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQjt3QkFDQSxNQUFNLElBQUksS0FBSyxDQUNiLGtHQUFrRyxDQUNuRyxDQUFBO3FCQUNGO29CQUVELHFCQUFNLElBQUEs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
@@ -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 = "create expo stack";
5
- exports.DEFAULT_APP_NAME = "my-expo-app";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQztBQUVqQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQUVqQyxRQUFBLGNBQWMsR0FBZTtJQUN4QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtDQUNGLENBQUMifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQTtBQUVoQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQTtBQUVoQyxRQUFBLGNBQWMsR0FBZTtJQUN4QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtDQUNGLENBQUEifQ==
@@ -1,4 +1,4 @@
1
1
  // @ts-ignore
2
2
  /// <reference types="expo-router/types" />
3
3
 
4
- // NOTE: This file should not be edited and should be in your git ignore
4
+ // NOTE: This file should not be edited and should be in your git ignore
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3BhY2thZ2VzL2V4cG8tcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTJCIn0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVtcGxhdGVzL3BhY2thZ2VzL2V4cG8tcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTBCIn0=
@@ -1 +1 @@
1
- import "expo-router/entry";
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
- import { Stack, useRouter } from "expo-router";
4
- import { Text, TouchableOpacity, View } from "react-native";
3
+ import { Stack, useRouter } from "expo-router";
4
+ import { Text, TouchableOpacity, View } from "react-native";
5
5
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
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";
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
- import config from '../tamagui.config'
11
+ import config from '../tamagui.config'
12
12
 
13
- SplashScreen.preventAutoHideAsync();
13
+ SplashScreen.preventAutoHideAsync();
14
14
  <% } else { %>
15
- import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
16
- import { Stack, useRouter } from "expo-router";
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
- 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
- });
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
- useEffect(() => {
37
- if (loaded) {
38
- SplashScreen.hideAsync();
39
- }
40
- }, [loaded]);
36
+ useEffect(() => {
37
+ if (loaded) {
38
+ SplashScreen.hideAsync();
39
+ }
40
+ }, [loaded]);
41
41
 
42
- if (!loaded) return null;
42
+ if (!loaded) return null;
43
43
 
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
- <% } %>
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
- 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"
65
- options={{ title: "Details", headerLeft: () => <BackButton /> }}
66
- />
67
- </Stack>
68
- <% if (props.stylingPackage?.name === "tamagui") { %>
69
- </TamaguiProvider>
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
- const styles = {
76
- backButton: "flex-row",
77
- backButtonText: "text-blue-500 ml-1",
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
- const styles = StyleSheet.create({
81
- backButton: {
82
- flexDirection: "row",
83
- },
84
- backButtonText: {
85
- color: "#007AFF",
86
- marginLeft: 4,
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
- import { View, Text } from "react-native";
2
+ import { View, Text } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
- import { YStack } from "tamagui";
5
- import { Container, Main, Subtitle, Title } from "../tamagui.config";
4
+ import { YStack } from "tamagui";
5
+ import { Container, Main, Subtitle, Title } from "../tamagui.config";
6
6
  <% } else { %>
7
- import { StyleSheet, View, Text } from "react-native";
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
- 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
- );
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
- 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
- };
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
- 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
- });
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
  <% } %>