create-expo-stack 2.22.0 → 2.24.0-next.163e6ee
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 +30 -30
- package/build/commands/create-expo-stack.js +17 -6
- package/build/templates/base/App.tsx.ejs +1 -1
- package/build/templates/base/babel.config.js.ejs +1 -8
- package/build/templates/base/components/TabBarIcon.tsx.ejs +2 -2
- package/build/templates/base/package.json.ejs +35 -3
- package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +10 -6
- package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +1 -1
- package/build/templates/packages/expo-router/metro.config.js.ejs +3 -3
- package/build/templates/packages/expo-router/stack/app/+not-found.tsx.ejs +13 -7
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +4 -1
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +12 -13
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +39 -18
- package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +11 -7
- package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +1 -1
- package/build/templates/packages/firebase/metro.config.js.ejs +3 -3
- package/build/templates/packages/i18next/translation/index.ts.ejs +3 -3
- package/build/templates/packages/nativewind/components/BackButton.tsx.ejs +1 -0
- package/build/templates/packages/nativewind/components/Button.tsx.ejs +1 -1
- package/build/templates/packages/nativewind/components/EditScreenInfo.tsx.ejs +1 -0
- package/build/templates/packages/nativewind/components/ScreenContent.tsx.ejs +2 -2
- package/build/templates/packages/nativewind/global.css +5 -3
- package/build/templates/packages/nativewind/metro.config.js +4 -3
- package/build/templates/packages/nativewind/nativewind-env.d.ts +3 -1
- package/build/templates/packages/nativewind/postcss.config.mjs +5 -0
- package/build/templates/packages/nativewind/prettier.config.js +10 -0
- package/build/templates/packages/nativewindui/components/TabBarIcon.tsx.ejs +2 -2
- package/build/templates/packages/nativewindui/drawer/app/(drawer)/index.tsx.ejs +7 -7
- package/build/templates/packages/nativewindui/drawer/app/_layout.tsx.ejs +4 -5
- package/build/templates/packages/nativewindui/drawer/app/modal.tsx.ejs +2 -2
- package/build/templates/packages/nativewindui/lib/useHeaderSearchBar.tsx.ejs +33 -0
- package/build/templates/packages/nativewindui/stack/app/_layout.tsx.ejs +1 -1
- package/build/templates/packages/nativewindui/stack/app/index.tsx.ejs +9 -39
- package/build/templates/packages/nativewindui/tabs/app/(tabs)/index.tsx.ejs +10 -13
- package/build/templates/packages/nativewindui/tabs/app/_layout.tsx.ejs +5 -9
- package/build/templates/packages/nativewindui/tabs/app/modal.tsx.ejs +1 -1
- package/build/templates/packages/nativewindui/theme/index.ts.ejs +1 -1
- package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +1 -1
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +1 -1
- package/build/types/types.d.ts +3 -2
- package/build/types/utilities/softwareMansion.d.ts +13 -0
- package/build/types.js +10 -2
- package/build/utilities/configureProjectFiles.js +5 -3
- package/build/utilities/generateNWUI.js +105 -1
- package/build/utilities/runCLI.js +68 -14
- package/build/utilities/showHelp.js +8 -2
- package/build/utilities/softwareMansion.js +48 -0
- package/package.json +74 -74
- package/build/templates/packages/nativewind/tailwind.config.js.ejs +0 -15
package/README.md
CHANGED
|
@@ -59,24 +59,24 @@ Each project is generated based on the results of the CLI, on a per-file basis.
|
|
|
59
59
|
|
|
60
60
|
| Library | Category | Version | Description |
|
|
61
61
|
| ------------------ | ------------------- | ------- | ---------------------------------------------- |
|
|
62
|
-
| React Native | Mobile Framework | v0.
|
|
63
|
-
| React | UI Framework | v19
|
|
64
|
-
| TypeScript | Language |
|
|
65
|
-
| React Navigation | Navigation | v7
|
|
66
|
-
| Expo | SDK |
|
|
67
|
-
| Expo
|
|
68
|
-
| Expo
|
|
69
|
-
| Expo
|
|
70
|
-
| Expo
|
|
71
|
-
| Expo
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
62
|
+
| React Native | Mobile Framework | v0.85 | The best cross-platform mobile framework |
|
|
63
|
+
| React | UI Framework | v19.2 | The most popular UI framework in the world |
|
|
64
|
+
| TypeScript | Language | v6.0 | Static typechecking |
|
|
65
|
+
| React Navigation | Navigation | v7.1 | Performant and consistent navigation framework |
|
|
66
|
+
| Expo | SDK | v56 | Opionated framework for building RN apps |
|
|
67
|
+
| Expo Linking | URL Handling | v56 | Open your app via a URL |
|
|
68
|
+
| Expo Router | Navigation | v56 | File-based routing in React-Native |
|
|
69
|
+
| Expo Status Bar | Status Bar Library | v56 | Status bar support |
|
|
70
|
+
| Expo System UI | System UI Library | v56 | System UI support |
|
|
71
|
+
| Expo Web Browser | Web Browser Library | v56 | Open links in the browser |
|
|
72
|
+
| Nativewind | UI Framework | v5 | Tailwind CSS for React Native |
|
|
73
|
+
| Tailwind CSS | CSS Framework | v4.1 | Utility-first CSS framework |
|
|
74
|
+
| React Native CSS | CSS Engine | latest | CSS support for React Native |
|
|
75
75
|
| Unistyles | UI Framework | v3 | Superset of StyleSheet |
|
|
76
|
-
| Safe Area Context | Safe Area Library | v5
|
|
77
|
-
| React Native Web | Web Support | v0.
|
|
78
|
-
| Firebase | Backend and Auth |
|
|
79
|
-
| Supabase | Backend and Auth | v2
|
|
76
|
+
| Safe Area Context | Safe Area Library | v5.7 | Safe area support |
|
|
77
|
+
| React Native Web | Web Support | v0.21 | React Native for Web |
|
|
78
|
+
| Firebase | Backend and Auth | v12 | Cloud-hosted NoSQL database from Google |
|
|
79
|
+
| Supabase | Backend and Auth | v2.38 | Open source Firebase alternative |
|
|
80
80
|
|
|
81
81
|
## Reporting Bugs & Feedback
|
|
82
82
|
|
|
@@ -129,21 +129,28 @@ Thanks go to these wonderful people:
|
|
|
129
129
|
<sub><b>Sam Moore</b></sub>
|
|
130
130
|
</a>
|
|
131
131
|
</td>
|
|
132
|
+
<td align="center">
|
|
133
|
+
<a href="https://github.com/DavidJGrimsley">
|
|
134
|
+
<img src="https://avatars.githubusercontent.com/u/114373822?v=4" width="100;" alt="DavidJGrimsley"/>
|
|
135
|
+
<br />
|
|
136
|
+
<sub><b>David Grimsley</b></sub>
|
|
137
|
+
</a>
|
|
138
|
+
</td>
|
|
132
139
|
<td align="center">
|
|
133
140
|
<a href="https://github.com/ernestoresende">
|
|
134
141
|
<img src="https://avatars.githubusercontent.com/u/55156145?v=4" width="100;" alt="ernestoresende"/>
|
|
135
142
|
<br />
|
|
136
143
|
<sub><b>Ernesto Resende</b></sub>
|
|
137
144
|
</a>
|
|
138
|
-
</td>
|
|
145
|
+
</td></tr>
|
|
146
|
+
<tr>
|
|
139
147
|
<td align="center">
|
|
140
148
|
<a href="https://github.com/PickleNik">
|
|
141
149
|
<img src="https://avatars.githubusercontent.com/u/31113245?v=4" width="100;" alt="PickleNik"/>
|
|
142
150
|
<br />
|
|
143
151
|
<sub><b>Null</b></sub>
|
|
144
152
|
</a>
|
|
145
|
-
</td
|
|
146
|
-
<tr>
|
|
153
|
+
</td>
|
|
147
154
|
<td align="center">
|
|
148
155
|
<a href="https://github.com/frankcalise">
|
|
149
156
|
<img src="https://avatars.githubusercontent.com/u/374022?v=4" width="100;" alt="frankcalise"/>
|
|
@@ -178,15 +185,15 @@ Thanks go to these wonderful people:
|
|
|
178
185
|
<br />
|
|
179
186
|
<sub><b>Gaurav Bhandari</b></sub>
|
|
180
187
|
</a>
|
|
181
|
-
</td>
|
|
188
|
+
</td></tr>
|
|
189
|
+
<tr>
|
|
182
190
|
<td align="center">
|
|
183
191
|
<a href="https://github.com/finnbayer">
|
|
184
192
|
<img src="https://avatars.githubusercontent.com/u/115630860?v=4" width="100;" alt="finnbayer"/>
|
|
185
193
|
<br />
|
|
186
194
|
<sub><b>Finn Bayer</b></sub>
|
|
187
195
|
</a>
|
|
188
|
-
</td
|
|
189
|
-
<tr>
|
|
196
|
+
</td>
|
|
190
197
|
<td align="center">
|
|
191
198
|
<a href="https://github.com/saimon24">
|
|
192
199
|
<img src="https://avatars.githubusercontent.com/u/2514208?v=4" width="100;" alt="saimon24"/>
|
|
@@ -221,13 +228,6 @@ Thanks go to these wonderful people:
|
|
|
221
228
|
<br />
|
|
222
229
|
<sub><b>Jacek Pudysz</b></sub>
|
|
223
230
|
</a>
|
|
224
|
-
</td>
|
|
225
|
-
<td align="center">
|
|
226
|
-
<a href="https://github.com/DavidJGrimsley">
|
|
227
|
-
<img src="https://avatars.githubusercontent.com/u/114373822?v=4" width="100;" alt="DavidJGrimsley"/>
|
|
228
|
-
<br />
|
|
229
|
-
<sub><b>David Grimsley</b></sub>
|
|
230
|
-
</a>
|
|
231
231
|
</td></tr>
|
|
232
232
|
<tr>
|
|
233
233
|
<td align="center">
|
|
@@ -17,6 +17,7 @@ const utilities_1 = require("../utilities");
|
|
|
17
17
|
const constants_1 = require("../constants");
|
|
18
18
|
const types_1 = require("../types");
|
|
19
19
|
const clearStylingPackages_1 = __importDefault(require("../utilities/clearStylingPackages"));
|
|
20
|
+
const softwareMansion_1 = require("../utilities/softwareMansion");
|
|
20
21
|
const systemCommand_1 = require("../utilities/systemCommand");
|
|
21
22
|
const validateProjectName_1 = require("../utilities/validateProjectName");
|
|
22
23
|
const prompts_1 = require("@clack/prompts");
|
|
@@ -272,6 +273,11 @@ const command = {
|
|
|
272
273
|
if (options.vexoAnalytics || options['vexo-analytics'] || options.vexoanalytics) {
|
|
273
274
|
cliResults.packages.push({ name: 'vexo-analytics', type: 'analytics' });
|
|
274
275
|
}
|
|
276
|
+
softwareMansion_1.softwareMansionPackageOptions.forEach(({ name, aliases }) => {
|
|
277
|
+
if (aliases.some((alias) => options[alias]) && (0, softwareMansion_1.shouldAddSoftwareMansionPackage)(name, cliResults)) {
|
|
278
|
+
cliResults.packages.push({ name, type: 'software-mansion' });
|
|
279
|
+
}
|
|
280
|
+
});
|
|
275
281
|
// By this point, all cliResults should be set
|
|
276
282
|
info('');
|
|
277
283
|
highlight('Your project configuration:');
|
|
@@ -309,10 +315,6 @@ const command = {
|
|
|
309
315
|
script += '--drawer+tabs ';
|
|
310
316
|
}
|
|
311
317
|
}
|
|
312
|
-
const stateManagementPackage = cliResults.packages.find((p) => p.type === 'state-management');
|
|
313
|
-
if (stateManagementPackage) {
|
|
314
|
-
script += `--${stateManagementPackage.name} `;
|
|
315
|
-
}
|
|
316
318
|
}
|
|
317
319
|
else {
|
|
318
320
|
// Add the packages
|
|
@@ -330,6 +332,16 @@ const command = {
|
|
|
330
332
|
}
|
|
331
333
|
});
|
|
332
334
|
}
|
|
335
|
+
if (isNativewindUISelected) {
|
|
336
|
+
cliResults.packages.forEach((p) => {
|
|
337
|
+
if (p.type === 'state-management' ||
|
|
338
|
+
p.type === 'internationalization' ||
|
|
339
|
+
p.type === 'analytics' ||
|
|
340
|
+
p.type === 'software-mansion') {
|
|
341
|
+
script += `--${p.name} `;
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
}
|
|
333
345
|
// Check if the user wants to skip installing packages
|
|
334
346
|
if (cliResults.flags.noInstall) {
|
|
335
347
|
script += '--no-install ';
|
|
@@ -361,7 +373,6 @@ const command = {
|
|
|
361
373
|
const stylingPackage = packages.find((p) => p.type === 'styling');
|
|
362
374
|
const internalizationPackage = packages.find((p) => p.type === 'internationalization');
|
|
363
375
|
const analyticsPackage = packages.find((p) => p.type === 'analytics');
|
|
364
|
-
//add the state management package if it is selected
|
|
365
376
|
const stateManagementPackage = packages.find((p) => p.type === 'state-management') || undefined;
|
|
366
377
|
let files = [];
|
|
367
378
|
files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, analyticsPackage, toolbox, cliResults, internalizationPackage, stateManagementPackage);
|
|
@@ -401,4 +412,4 @@ const command = {
|
|
|
401
412
|
})
|
|
402
413
|
};
|
|
403
414
|
exports.default = command;
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsNENBVXNCO0FBQ3RCLDRDQU9zQjtBQUN0QixvQ0FBeUQ7QUFDekQsNkZBQXFFO0FBQ3JFLDhEQUEyRDtBQUMzRCwwRUFBdUU7QUFDdkUsNENBQStEO0FBQy9ELG1HQUEyRTtBQUUzRSxNQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxDQUFPLE9BQU8sRUFBRSxFQUFFOztRQUNyQixNQUFNLEVBQ0osVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUNuQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQzlCLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFDbkQsTUFBTSxFQUNQLEdBQUcsT0FBTyxDQUFDO1FBRVosTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUNGLHdIQUF3SCxDQUN6SCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBQSxvQkFBUSxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFFRCxzQkFBc0I7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
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsNENBVXNCO0FBQ3RCLDRDQU9zQjtBQUN0QixvQ0FBeUQ7QUFDekQsNkZBQXFFO0FBQ3JFLGtFQUE4RztBQUM5Ryw4REFBMkQ7QUFDM0QsMEVBQXVFO0FBQ3ZFLDRDQUErRDtBQUMvRCxtR0FBMkU7QUFFM0UsTUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsQ0FBTyxPQUFPLEVBQUUsRUFBRTs7UUFDckIsTUFBTSxFQUNKLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFDbkMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUM5QixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQ25ELE1BQU0sRUFDUCxHQUFHLE9BQU8sQ0FBQztRQUVaLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFO1lBQ25DLElBQUksQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FDRix3SEFBd0gsQ0FDekgsQ0FBQztZQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQztRQUVGLG1CQUFtQjtRQUNuQixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE9BQU87UUFDVCxDQUFD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
|
|
@@ -6,7 +6,7 @@ import { StatusBar } from 'expo-status-bar';
|
|
|
6
6
|
|
|
7
7
|
<% if (props.internalizationPackage?.name === "i18next") { %>
|
|
8
8
|
import './translation';
|
|
9
|
-
import { InternalizationExample } from 'components/InternalizationExample';
|
|
9
|
+
import { InternalizationExample } from './components/InternalizationExample';
|
|
10
10
|
<% } %>
|
|
11
11
|
|
|
12
12
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
@@ -15,14 +15,7 @@ module.exports = function(api) {
|
|
|
15
15
|
plugins.push('react-native-worklets/plugin');
|
|
16
16
|
|
|
17
17
|
return {
|
|
18
|
-
|
|
19
|
-
presets: [
|
|
20
|
-
['babel-preset-expo', { jsxImportSource: 'nativewind' }],
|
|
21
|
-
'nativewind/babel',
|
|
22
|
-
],
|
|
23
|
-
<% } else { %>
|
|
24
|
-
presets: ['babel-preset-expo'],
|
|
25
|
-
<% } %>
|
|
18
|
+
presets: ['babel-preset-expo'],
|
|
26
19
|
plugins,
|
|
27
20
|
};
|
|
28
21
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import FontAwesome from '@expo/vector-icons/FontAwesome';
|
|
2
|
-
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { ColorValue, StyleSheet } from 'react-native';
|
|
3
3
|
|
|
4
4
|
export const TabBarIcon = (props: {
|
|
5
5
|
name: React.ComponentProps<typeof FontAwesome>['name'];
|
|
6
|
-
color:
|
|
6
|
+
color: ColorValue;
|
|
7
7
|
}) => {
|
|
8
8
|
return <FontAwesome size={28} style={styles.tabBarIcon} {...props} />;
|
|
9
9
|
};
|
|
@@ -31,7 +31,10 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
<% if (props.stylingPackage?.name === "nativewind" || props.stylingPackage?.name === "nativewindui") { %>
|
|
34
|
-
"nativewind": "
|
|
34
|
+
"nativewind": "preview",
|
|
35
|
+
"react-native-css": "latest",
|
|
36
|
+
"postcss": "^8.5.6",
|
|
37
|
+
"@tailwindcss/postcss": "^4.1.13",
|
|
35
38
|
<% } %>
|
|
36
39
|
<% if (props.stylingPackage?.name === "nativewindui") { %>
|
|
37
40
|
"@react-navigation/elements": "^2.9.25",
|
|
@@ -72,10 +75,24 @@
|
|
|
72
75
|
|
|
73
76
|
<% if (props.navigationPackage?.type === "navigation") { %>
|
|
74
77
|
"@react-navigation/native": "^7.1.6",
|
|
78
|
+
<% } %>
|
|
79
|
+
|
|
80
|
+
<% if (props.navigationPackage?.type === "navigation" || props.packages?.some((p) => p.name === "react-native-gesture-handler")) { %>
|
|
75
81
|
"react-native-gesture-handler": "~2.31.1",
|
|
82
|
+
<% } %>
|
|
83
|
+
|
|
84
|
+
<% if (props.navigationPackage?.type === "navigation" || props.packages?.some((p) => p.name === "react-native-screens")) { %>
|
|
76
85
|
"react-native-screens": "4.25.2",
|
|
77
86
|
<% } %>
|
|
78
87
|
|
|
88
|
+
<% if (props.packages?.some((p) => p.name === "react-native-svg")) { %>
|
|
89
|
+
"react-native-svg": "15.15.4",
|
|
90
|
+
<% } %>
|
|
91
|
+
|
|
92
|
+
<% if (props.packages?.some((p) => p.name === "react-native-keyboard-controller")) { %>
|
|
93
|
+
"react-native-keyboard-controller": "1.21.6",
|
|
94
|
+
<% } %>
|
|
95
|
+
|
|
79
96
|
<% if (props.navigationPackage?.name === "react-navigation") { %>
|
|
80
97
|
"@react-navigation/stack": "^7.4.8",
|
|
81
98
|
"@expo/vector-icons": "^15.0.2",
|
|
@@ -148,8 +165,8 @@
|
|
|
148
165
|
"eslint-config-prettier": "^10.1.2",
|
|
149
166
|
"prettier": "^3.2.5",
|
|
150
167
|
<% if (props.stylingPackage?.name === "nativewind" || props.stylingPackage?.name === "nativewindui") { %>
|
|
151
|
-
"tailwindcss": "^
|
|
152
|
-
"prettier-plugin-tailwindcss": "^0.
|
|
168
|
+
"tailwindcss": "^4.1.13",
|
|
169
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
153
170
|
<% } %>
|
|
154
171
|
"typescript": "~6.0.3"
|
|
155
172
|
},
|
|
@@ -159,5 +176,20 @@
|
|
|
159
176
|
<% if (props.packageManager === "yarn"){ %>
|
|
160
177
|
"packageManager": "yarn@4.9.4",
|
|
161
178
|
<% } %>
|
|
179
|
+
<% if (props.stylingPackage?.name === "nativewind" && props.packageManager === "yarn") { %>
|
|
180
|
+
"resolutions": {
|
|
181
|
+
"lightningcss": "1.30.1"
|
|
182
|
+
},
|
|
183
|
+
<% } else if (props.stylingPackage?.name === "nativewind" && props.packageManager === "pnpm") { %>
|
|
184
|
+
"pnpm": {
|
|
185
|
+
"overrides": {
|
|
186
|
+
"lightningcss": "1.30.1"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
<% } else if (props.stylingPackage?.name === "nativewind") { %>
|
|
190
|
+
"overrides": {
|
|
191
|
+
"lightningcss": "1.30.1"
|
|
192
|
+
},
|
|
193
|
+
<% } %>
|
|
162
194
|
"private": true
|
|
163
195
|
}
|
|
@@ -40,8 +40,12 @@ export default function RootLayout() {
|
|
|
40
40
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
41
41
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
42
42
|
<SafeAreaProvider>
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
<Stack>
|
|
44
|
+
<Stack.Screen name="(drawer)" options={{ headerShown: false }} />
|
|
45
|
+
<Stack.Screen name="modal" options={{ title: 'Modal', presentation: 'modal' }} />
|
|
46
|
+
</Stack>
|
|
47
|
+
</SafeAreaProvider>
|
|
48
|
+
<% } else if (props.stylingPackage?.name === "unistyles") { %>
|
|
45
49
|
<Stack
|
|
46
50
|
screenOptions={{
|
|
47
51
|
headerStyle: {
|
|
@@ -60,14 +64,14 @@ export default function RootLayout() {
|
|
|
60
64
|
drawerInactiveTintColor: theme.colors.typography,
|
|
61
65
|
}}
|
|
62
66
|
>
|
|
63
|
-
|
|
67
|
+
<Stack.Screen name="(drawer)" options={{ headerShown: false }} />
|
|
68
|
+
<Stack.Screen name="modal" options={{ title: 'Modal', presentation: 'modal' }} />
|
|
69
|
+
</Stack>
|
|
70
|
+
<% } else { %>
|
|
64
71
|
<Stack>
|
|
65
|
-
<% } %>
|
|
66
72
|
<Stack.Screen name="(drawer)" options={{ headerShown: false }} />
|
|
67
73
|
<Stack.Screen name="modal" options={{ title: 'Modal', presentation: 'modal' }} />
|
|
68
74
|
</Stack>
|
|
69
|
-
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
70
|
-
</SafeAreaProvider>
|
|
71
75
|
<% } %>
|
|
72
76
|
</GestureHandlerRootView>
|
|
73
77
|
);
|
|
@@ -4,7 +4,7 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
import { ScreenContent } from '@/components/ScreenContent';
|
|
5
5
|
|
|
6
6
|
<% if (props.internalizationPackage?.name === "i18next") { %>
|
|
7
|
-
import { InternalizationExample } from 'components/InternalizationExample';
|
|
7
|
+
import { InternalizationExample } from '../components/InternalizationExample';
|
|
8
8
|
<% } %>
|
|
9
9
|
|
|
10
10
|
export default function Modal() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Learn more https://docs.expo.io/guides/customizing-metro
|
|
2
2
|
const { getDefaultConfig } = require('expo/metro-config');
|
|
3
3
|
<% if (["nativewind", "nativewindui"].includes(props.stylingPackage?.name)) { %>
|
|
4
|
-
const {
|
|
4
|
+
const { withNativewind } = require("nativewind/metro");
|
|
5
5
|
<% } %>
|
|
6
6
|
|
|
7
7
|
/** @type {import('expo/metro-config').MetroConfig} */
|
|
@@ -9,9 +9,9 @@ const { getDefaultConfig } = require('expo/metro-config');
|
|
|
9
9
|
const config = getDefaultConfig(__dirname);
|
|
10
10
|
|
|
11
11
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
12
|
-
module.exports =
|
|
12
|
+
module.exports = withNativewind(config);
|
|
13
13
|
<% } else if (props.stylingPackage?.name === "nativewindui") { %>
|
|
14
|
-
module.exports =
|
|
14
|
+
module.exports = withNativewind(config, { inlineRem: 16 });
|
|
15
15
|
<% } else { %>
|
|
16
16
|
module.exports = config;
|
|
17
17
|
<% } %>
|
|
@@ -2,16 +2,13 @@ import { Link, Stack } from 'expo-router';
|
|
|
2
2
|
<% if (props.stylingPackage?.name === "nativewind") {%>
|
|
3
3
|
import { Text, View } from 'react-native';
|
|
4
4
|
|
|
5
|
-
import { Container } from '@/components/Container';
|
|
6
5
|
<% } else if (props.stylingPackage?.name === "unistyles") { %>
|
|
7
6
|
import { StyleSheet } from 'react-native-unistyles'
|
|
8
7
|
import { Text, View } from 'react-native';
|
|
9
8
|
|
|
10
|
-
import { Container } from '@/components/Container';
|
|
11
9
|
<% } else if (props.stylingPackage?.name === "stylesheet") { %>
|
|
12
10
|
import { StyleSheet, Text, View } from 'react-native';
|
|
13
11
|
|
|
14
|
-
import { Container } from '@/components/Container';
|
|
15
12
|
<% } %>
|
|
16
13
|
|
|
17
14
|
export default function NotFoundScreen() {
|
|
@@ -20,22 +17,22 @@ export default function NotFoundScreen() {
|
|
|
20
17
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
21
18
|
<View className={styles.container}>
|
|
22
19
|
<Stack.Screen options={{ title: "Oops!" }} />
|
|
23
|
-
<
|
|
20
|
+
<View className={styles.contentContainer}>
|
|
24
21
|
<Text className={styles.title}>{"This screen doesn't exist."}</Text>
|
|
25
22
|
<Link href="/" className={styles.link}>
|
|
26
23
|
<Text className={styles.linkText}>Go to home screen!</Text>
|
|
27
24
|
</Link>
|
|
28
|
-
</
|
|
25
|
+
</View>
|
|
29
26
|
</View>
|
|
30
27
|
<% } else { %>
|
|
31
28
|
<View style={styles.container}>
|
|
32
29
|
<Stack.Screen options={{ title: "Oops!" }} />
|
|
33
|
-
<
|
|
30
|
+
<View style={styles.contentContainer}>
|
|
34
31
|
<Text style={styles.title}>{"This screen doesn't exist."}</Text>
|
|
35
32
|
<Link href="/" style={styles.link}>
|
|
36
33
|
<Text style={styles.linkText}>Go to home screen!</Text>
|
|
37
34
|
</Link>
|
|
38
|
-
</
|
|
35
|
+
</View>
|
|
39
36
|
</View>
|
|
40
37
|
<% } %>
|
|
41
38
|
);
|
|
@@ -44,6 +41,7 @@ export default function NotFoundScreen() {
|
|
|
44
41
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
45
42
|
const styles = {
|
|
46
43
|
container: `flex flex-1 bg-white`,
|
|
44
|
+
contentContainer: `flex flex-1 m-6`,
|
|
47
45
|
title: `text-xl font-bold`,
|
|
48
46
|
link: `mt-4 pt-4`,
|
|
49
47
|
linkText: `text-base text-[#2e78b7]`,
|
|
@@ -54,6 +52,10 @@ const styles = StyleSheet.create((theme) => ({
|
|
|
54
52
|
flex: 1,
|
|
55
53
|
backgroundColor: 'white',
|
|
56
54
|
},
|
|
55
|
+
contentContainer: {
|
|
56
|
+
flex: 1,
|
|
57
|
+
margin: 24,
|
|
58
|
+
},
|
|
57
59
|
title: {
|
|
58
60
|
fontSize: 20,
|
|
59
61
|
fontWeight: 'bold',
|
|
@@ -74,6 +76,10 @@ const styles = StyleSheet.create({
|
|
|
74
76
|
flex: 1,
|
|
75
77
|
backgroundColor: 'white',
|
|
76
78
|
},
|
|
79
|
+
contentContainer: {
|
|
80
|
+
flex: 1,
|
|
81
|
+
margin: 24,
|
|
82
|
+
},
|
|
77
83
|
title: {
|
|
78
84
|
fontSize: 20,
|
|
79
85
|
fontWeight: 'bold',
|
|
@@ -39,7 +39,10 @@ export default function Layout() {
|
|
|
39
39
|
/>
|
|
40
40
|
<% } else if (props.stylingPackage?.name === "nativewind") { %>
|
|
41
41
|
<SafeAreaProvider>
|
|
42
|
-
<Stack
|
|
42
|
+
<Stack>
|
|
43
|
+
<Stack.Screen name="index" options={{ title: 'Home' }} />
|
|
44
|
+
<Stack.Screen name="details" options={{ title: 'Details' }} />
|
|
45
|
+
</Stack>
|
|
43
46
|
</SafeAreaProvider>
|
|
44
47
|
<% } else { %>
|
|
45
48
|
<Stack />
|
|
@@ -3,12 +3,12 @@ import { StyleSheet, View } from 'react-native';
|
|
|
3
3
|
<% } else if (props.stylingPackage?.name === "unistyles") { %>
|
|
4
4
|
import { StyleSheet } from 'react-native-unistyles';
|
|
5
5
|
import { View } from 'react-native';
|
|
6
|
-
<% } else { %>
|
|
7
|
-
import { View } from 'react-native';
|
|
8
6
|
<% } %>
|
|
9
7
|
import { Stack, useLocalSearchParams } from 'expo-router';
|
|
10
8
|
|
|
9
|
+
<% if (props.stylingPackage?.name !== "nativewind") { %>
|
|
11
10
|
import { Container } from '@/components/Container';
|
|
11
|
+
<% } %>
|
|
12
12
|
import { ScreenContent } from '@/components/ScreenContent';
|
|
13
13
|
|
|
14
14
|
export default function Details() {
|
|
@@ -16,23 +16,22 @@ export default function Details() {
|
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
18
|
<% if (props.stylingPackage?.name === "nativewind") { %>
|
|
19
|
-
|
|
19
|
+
<>
|
|
20
|
+
<Stack.Screen options={{ title: 'Details' }} />
|
|
21
|
+
<ScreenContent path="screens/details.tsx" title={`Showing details for user ${name}`} />
|
|
22
|
+
</>
|
|
20
23
|
<% } else { %>
|
|
21
24
|
<View style={styles.container}>
|
|
25
|
+
<Stack.Screen options={{ title: 'Details' }} />
|
|
26
|
+
<Container>
|
|
27
|
+
<ScreenContent path="screens/details.tsx" title={`Showing details for user ${name}`} />
|
|
28
|
+
</Container>
|
|
29
|
+
</View>
|
|
22
30
|
<% } %>
|
|
23
|
-
<Stack.Screen options={{ title: 'Details' }} />
|
|
24
|
-
<Container>
|
|
25
|
-
<ScreenContent path="screens/details.tsx" title={`Showing details for user ${name}`} />
|
|
26
|
-
</Container>
|
|
27
|
-
</View>
|
|
28
31
|
);
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
<% if (props.stylingPackage?.name === "
|
|
32
|
-
const styles = {
|
|
33
|
-
container: "flex flex-1 bg-white",
|
|
34
|
-
}
|
|
35
|
-
<% } else if (props.stylingPackage?.name === "stylesheet") { %>
|
|
34
|
+
<% if (props.stylingPackage?.name === "stylesheet") { %>
|
|
36
35
|
const styles = StyleSheet.create({
|
|
37
36
|
container: {
|
|
38
37
|
flex: 1,
|