create-expo-stack 2.1.24 → 2.2.0

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 (29) hide show
  1. package/build/commands/create-expo-stack.js +27 -12
  2. package/build/constants.js +1 -1
  3. package/build/templates/base/App.tsx.ejs +44 -44
  4. package/build/templates/base/package.json.ejs +11 -0
  5. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +1 -0
  6. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +42 -40
  7. package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +40 -38
  8. package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +33 -33
  9. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +44 -42
  10. package/build/templates/packages/firebase/.env +8 -0
  11. package/build/templates/packages/firebase/metro.config.js +6 -0
  12. package/build/templates/packages/firebase/utils/firebase.ts.ejs +26 -0
  13. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +2 -1
  14. package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +57 -55
  15. package/build/templates/packages/react-navigation/screens/one.tsx.ejs +53 -51
  16. package/build/templates/packages/react-navigation/screens/two.tsx.ejs +53 -51
  17. package/build/templates/packages/supabase/.env +2 -0
  18. package/build/templates/packages/supabase/utils/supabase.ts.ejs +15 -0
  19. package/build/templates/packages/tamagui/tamagui.config.ts.ejs +94 -88
  20. package/build/types/types.d.ts +2 -2
  21. package/build/types/utilities/configureProjectFiles.d.ts +1 -1
  22. package/build/types/utilities/generateProjectFiles.d.ts +1 -1
  23. package/build/types.js +6 -4
  24. package/build/utilities/configureProjectFiles.js +19 -2
  25. package/build/utilities/generateProjectFiles.js +13 -5
  26. package/build/utilities/printOutput.js +43 -9
  27. package/build/utilities/runCLI.js +25 -5
  28. package/build/utilities/showHelp.js +21 -4
  29. package/package.json +1 -1
@@ -44,7 +44,7 @@ var command = {
44
44
  name: 'create-expo-stack',
45
45
  description: 'Create a new Expo project',
46
46
  run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
47
- var _a, first, options, _b, info, highlight, warning, cliResults, useDefault, skipCLI, useBlankTypescript, optionsPassedIn, packages, navigationPackage, stylingPackage, files, formattedFiles, error_1;
47
+ var _a, first, options, _b, info, highlight, warning, cliResults, useDefault, skipCLI, useBlankTypescript, optionsPassedIn, packages, authenticationPackage, navigationPackage, stylingPackage, files, formattedFiles, error_1;
48
48
  return __generator(this, function (_c) {
49
49
  switch (_c.label) {
50
50
  case 0:
@@ -100,8 +100,8 @@ var command = {
100
100
  cliResults = _c.sent();
101
101
  _c.label = 7;
102
102
  case 7:
103
- // @internal Update the cliResults with the options passed in via the command
104
- // This is used for testing purposes only
103
+ // Update the cliResults with the options passed in via the command
104
+ // Navigation packages
105
105
  if (options.reactNavigation ||
106
106
  options['react-navigation'] ||
107
107
  options.reactnavigation) {
@@ -126,28 +126,41 @@ var command = {
126
126
  },
127
127
  });
128
128
  }
129
+ // Styling packages
129
130
  if (options.nativewind) {
130
131
  // Add nativewind package
131
132
  cliResults.packages.push({
132
133
  name: 'nativewind',
133
134
  type: 'styling',
134
- options: {},
135
135
  });
136
136
  }
137
- if (options.tamagui) {
137
+ else if (options.tamagui) {
138
138
  // Add tamagui package
139
139
  cliResults.packages.push({
140
140
  name: 'tamagui',
141
141
  type: 'styling',
142
- options: {},
143
142
  });
144
143
  }
145
- if (options.stylesheet || options.stylesheets) {
144
+ else {
146
145
  // Add stylesheet package
147
146
  cliResults.packages.push({
148
147
  name: 'stylesheet',
149
148
  type: 'styling',
150
- options: {},
149
+ });
150
+ }
151
+ // Authentication packages
152
+ if (options.supabase) {
153
+ // Add supabase package
154
+ cliResults.packages.push({
155
+ name: 'supabase',
156
+ type: 'authentication',
157
+ });
158
+ }
159
+ if (options.firebase) {
160
+ // Add firebase package
161
+ cliResults.packages.push({
162
+ name: 'firebase',
163
+ type: 'authentication',
151
164
  });
152
165
  }
153
166
  // Destructure the results but set the projectName if the first param is passed in
@@ -155,15 +168,17 @@ var command = {
155
168
  cliResults.projectName = first;
156
169
  }
157
170
  // By this point, all cliResults should be set
158
- info('Your project configuration:');
171
+ info('');
172
+ highlight('Your project configuration:');
159
173
  info(util.inspect(cliResults, false, null, true /* enable colors */));
160
174
  packages = cliResults.packages;
175
+ authenticationPackage = packages.find(function (p) { return p.type === 'authentication'; }) || undefined;
161
176
  navigationPackage = packages.find(function (p) { return p.type === 'navigation'; }) || undefined;
162
177
  stylingPackage = packages.find(function (p) { return p.type === 'styling'; });
163
178
  files = [];
164
- files = (0, utilities_1.configureProjectFiles)(files, navigationPackage, stylingPackage, toolbox);
179
+ files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, toolbox);
165
180
  formattedFiles = [];
166
- formattedFiles = (0, utilities_1.generateProjectFiles)(cliResults, files, formattedFiles, navigationPackage, toolbox, stylingPackage);
181
+ formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, stylingPackage, toolbox);
167
182
  return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox)];
168
183
  case 8:
169
184
  _c.sent();
@@ -183,4 +198,4 @@ var command = {
183
198
  }); },
184
199
  };
185
200
  exports.default = command;
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsMENBUXFCO0FBQ3JCLDBDQUE2QztBQUM3QyxrQ0FBd0Q7QUFFeEQsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsVUFBTyxPQUFPOzs7OztvQkFFZixLQUVFLE9BQU8sV0FGcUIsRUFBaEIsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFBLEVBQzVCLEtBQ0UsT0FBTyxNQUQwQixFQUExQixJQUFJLFVBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxPQUFPLGFBQUEsQ0FDeEI7b0JBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLElBQUEsb0JBQVEsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO3dCQUVsQyxzQkFBTTtxQkFDUDs7OztvQkFFQywySUFBMkk7b0JBQzNJLElBQ0UsT0FBTyxDQUFDLElBQUk7d0JBQ1osQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDeEIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7d0JBQzVCLENBQUMsT0FBTyxDQUFDLGVBQWU7d0JBQ3hCLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ25CLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzt3QkFDdkIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQjt3QkFDQSxNQUFNLElBQUksS0FBSyxDQUNiLGtHQUFrRyxDQUNuRyxDQUFBO3FCQUNGO29CQUVELHFCQUFNLElBQUEs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
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFFNUIsMENBUXFCO0FBQ3JCLDBDQUE2QztBQUM3QyxrQ0FBd0Q7QUFFeEQsSUFBTSxPQUFPLEdBQW1CO0lBQy9CLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxHQUFHLEVBQUUsVUFBTyxPQUFPOzs7OztvQkFFakIsS0FFRyxPQUFPLFdBRm9CLEVBQWhCLEtBQUssV0FBQSxFQUFFLE9BQU8sYUFBQSxFQUM1QixLQUNHLE9BQU8sTUFEeUIsRUFBMUIsSUFBSSxVQUFBLEVBQUUsU0FBUyxlQUFBLEVBQUUsT0FBTyxhQUFBLENBQ3ZCO29CQUNYLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTt3QkFFbEMsc0JBQU07cUJBQ047Ozs7b0JBRUEsMklBQTJJO29CQUMzSSxJQUNDLE9BQU8sQ0FBQyxJQUFJO3dCQUNaLENBQUMsT0FBTyxDQUFDLGVBQWU7d0JBQ3hCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO3dCQUM1QixDQUFDLE9BQU8sQ0FBQyxlQUFlO3dCQUN4QixDQUFDLE9BQU8sQ0FBQyxVQUFVO3dCQUNuQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7d0JBQ3ZCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDbEI7d0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDZCxrR0FBa0csQ0FDbEcsQ0FBQTtxQkFDRDtvQkFFRCxxQkFBTSxJQUFB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
@@ -12,4 +12,4 @@ exports.defaultOptions = {
12
12
  importAlias: '~/',
13
13
  },
14
14
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQTtBQUVoQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQTtBQUVoQyxRQUFBLGNBQWMsR0FBZTtJQUN4QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNsQjtDQUNGLENBQUEifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQTtBQUVoQyxRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQTtBQUVoQyxRQUFBLGNBQWMsR0FBZTtJQUN6QyxXQUFXLEVBQUUsd0JBQWdCO0lBQzdCLFFBQVEsRUFBRSxFQUFFO0lBQ1osS0FBSyxFQUFFO1FBQ04sS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsSUFBSTtLQUNqQjtDQUNELENBQUEifQ==
@@ -1,64 +1,64 @@
1
1
  import React from 'react';
2
2
 
3
3
  <% if (props.stylingPackage?.name === "nativewind") {%>
4
- import { Text, View } from 'react-native';
4
+ import { Text, View } from 'react-native';
5
5
  <% } else if (props.stylingPackage?.name === "tamagui") {%>
6
- import { View } from 'react-native';
7
- import { TamaguiProvider, Text, styled } from 'tamagui';
8
- import config from './tamagui.config'
6
+ import { View } from 'react-native';
7
+ import { TamaguiProvider, Text, styled } from 'tamagui';
8
+ import config from './tamagui.config'
9
9
  <% } else {%>
10
- import { StyleSheet, Text, View } from 'react-native';
10
+ import { StyleSheet, Text, View } from 'react-native';
11
11
  <% } %>
12
12
 
13
13
  import { StatusBar } from 'expo-status-bar';
14
14
 
15
15
  <% if (props.stylingPackage?.name === "nativewind") {%>
16
16
  export default function App() {
17
- return (
18
- <View className={styles.container} %>>
17
+ return (
18
+ <View className={styles.container} %>>
19
19
  <Text>Open up App.tsx to start working on your app!</Text>
20
20
  <StatusBar style="auto" />
21
- </View>
21
+ </View >
22
22
  );
23
- }
23
+ }
24
24
 
25
- const styles = {
26
- container: 'flex flex-1 items-center justify-center bg-white',
27
- };
25
+ const styles = {
26
+ container: 'flex flex-1 items-center justify-center bg-white',
27
+ };
28
28
  <% } else if (props.stylingPackage?.name === "tamagui") {%>
29
- const MyView = styled(View, {
30
- name: "MyView",
31
- flex: 1,
32
- alignItems: 'center',
33
- justifyContent: 'center',
34
- });
29
+ const MyView = styled(View, {
30
+ name: "MyView",
31
+ flex: 1,
32
+ alignItems: 'center',
33
+ justifyContent: 'center',
34
+ });
35
35
 
36
- export default function App() {
37
- return (
38
- <TamaguiProvider config={config}>
39
- <MyView %>>
40
- <Text>Open up App.tsx to start working on your app!</Text>
41
- <StatusBar style="auto" />
42
- </MyView>
43
- </TamaguiProvider>
44
- );
45
- }
36
+ export default function App() {
37
+ return (
38
+ <TamaguiProvider config={config}>
39
+ <MyView %>>
40
+ <Text>Open up App.tsx to start working on your app!</Text>
41
+ <StatusBar style="auto" />
42
+ </MyView>
43
+ </TamaguiProvider >
44
+ );
45
+ }
46
46
  <% } else {%>
47
- export default function App() {
48
- return (
49
- <View style={styles.container} %>>
50
- <Text>Open up App.tsx to start working on your app!</Text>
51
- <StatusBar style="auto" />
52
- </View>
53
- );
54
- }
47
+ export default function App() {
48
+ return (
49
+ <View style={styles.container}>
50
+ <Text>Open up App.tsx to start working on your app!</Text>
51
+ <StatusBar style="auto" />
52
+ </View >
53
+ );
54
+ }
55
55
 
56
- const styles = StyleSheet.create({
57
- container: {
58
- flex: 1,
59
- backgroundColor: '#fff',
60
- alignItems: 'center',
61
- justifyContent: 'center',
62
- },
63
- });
56
+ const styles = StyleSheet.create({
57
+ container: {
58
+ flex: 1,
59
+ backgroundColor: '#fff',
60
+ alignItems: 'center',
61
+ justifyContent: 'center',
62
+ },
63
+ });
64
64
  <% } %>
@@ -51,6 +51,17 @@
51
51
  "react-native-web": "~0.19.6",
52
52
  <% } %>
53
53
 
54
+ <% if (props.authenticationPackage?.name === "supabase") { %>
55
+ "@react-native-async-storage/async-storage": "1.18.2",
56
+ "@supabase/supabase-js": "^2.38.4",
57
+ "react-native-url-polyfill": "^2.0.0",
58
+ <% } %>
59
+
60
+ <% if (props.authenticationPackage?.name === "firebase") { %>
61
+ "firebase": "^10.5.2",
62
+ "react-native-url-polyfill": "^2.0.0",
63
+ <% } %>
64
+
54
65
  "expo": "~49.0.11",
55
66
  "expo-status-bar": "~1.6.0",
56
67
  "react": "18.2.0",
@@ -6,6 +6,7 @@
6
6
  <% } else { %>
7
7
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
8
8
  <% } %>
9
+
9
10
  import { Link } from "expo-router";
10
11
 
11
12
  export default function Page() {
@@ -1,7 +1,7 @@
1
1
  <% if (props.stylingPackage?.name === "nativewind") { %>
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
- import { YStack, H2, Separator } from "tamagui";
4
+ import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else { %>
6
6
  import { StyleSheet, Text, View } from "react-native";
7
7
  <% } %>
@@ -11,52 +11,54 @@ import EditScreenInfo from "../../components/edit-screen-info";
11
11
  export default function TabOneScreen() {
12
12
  <% if (props.stylingPackage?.name === "nativewind") { %>
13
13
  return (
14
- <View className={styles.container}>
15
- <Text className={styles.title}>Tab One</Text>
16
- <View className={styles.separator} />
17
- <EditScreenInfo path="app/(tabs)/index.tsx" />
18
- </View>
19
- );
20
- <% } else if (props.stylingPackage?.name === "tamagui") { %>
14
+ <View className={styles.container}>
15
+ <Text className={styles.title}>Tab One</Text>
16
+ <View className={styles.separator} />
17
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
18
+ </View>
19
+ );
20
+ <% } else if (props.stylingPackage?.name === "tamagui") { %>
21
21
  return (
22
- <YStack flex={1} alignItems="center" justifyContent="center">
23
- <H2>Tab One</H2>
24
- <Separator />
25
- <EditScreenInfo path="app/(tabs)/index.tsx" />
26
- </YStack>
27
- );
28
- <% } else { %>
22
+ <Theme name="light">
23
+ <YStack flex={1} alignItems="center" justifyContent="center">
24
+ <H2>Tab One</H2>
25
+ <Separator />
26
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
27
+ </YStack>
28
+ </Theme>
29
+ );
30
+ <% } else { %>
29
31
  return (
30
- <View style={styles.container}>
31
- <Text style={styles.title}>Tab One</Text>
32
- <View style={styles.separator} />
33
- <EditScreenInfo path="app/(tabs)/index.tsx" />
34
- </View>
35
- );
32
+ <View style={styles.container}>
33
+ <Text style={styles.title}>Tab One</Text>
34
+ <View style={styles.separator} />
35
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
36
+ </View>
37
+ );
36
38
  <% } %>
37
39
  }
38
40
 
39
41
  <% if (props.stylingPackage?.name === "nativewind") { %>
40
42
  const styles = {
41
- container: `items-center flex-1 justify-center`,
42
- separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
43
- title: `text-xl font-bold`
44
- };
43
+ container: `items-center flex-1 justify-center`,
44
+ separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
45
+ title: `text-xl font-bold`
46
+ };
45
47
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
46
48
  const styles = StyleSheet.create({
47
- container: {
48
- alignItems: "center",
49
- flex: 1,
50
- justifyContent: "center",
51
- },
52
- separator: {
53
- height: 1,
54
- marginVertical: 30,
55
- width: "80%",
56
- },
57
- title: {
58
- fontSize: 20,
59
- fontWeight: "bold",
60
- }
61
- });
49
+ container: {
50
+ alignItems: "center",
51
+ flex: 1,
52
+ justifyContent: "center",
53
+ },
54
+ separator: {
55
+ height: 1,
56
+ marginVertical: 30,
57
+ width: "80%",
58
+ },
59
+ title: {
60
+ fontSize: 20,
61
+ fontWeight: "bold",
62
+ }
63
+ });
62
64
  <% } %>
@@ -1,7 +1,7 @@
1
1
  <% if (props.stylingPackage?.name === "nativewind") { %>
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
- import { YStack, H2, Separator } from "tamagui";
4
+ import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else { %>
6
6
  import { StyleSheet, Text, View } from "react-native";
7
7
  <% } %>
@@ -11,52 +11,54 @@ import EditScreenInfo from "../../components/edit-screen-info";
11
11
  export default function TabTwoScreen() {
12
12
  <% if (props.stylingPackage?.name === "nativewind") { %>
13
13
  return (
14
- <View className={styles.container}>
15
- <Text className={styles.title}>Tab Two</Text>
16
- <View className={styles.separator} />
17
- <EditScreenInfo path="app/(tabs)/index.tsx" />
18
- </View>
19
- );
14
+ <View className={styles.container}>
15
+ <Text className={styles.title}>Tab Two</Text>
16
+ <View className={styles.separator} />
17
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
18
+ </View>
19
+ );
20
20
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
21
21
  return (
22
- <YStack flex={1} alignItems="center" justifyContent="center">
23
- <H2>Tab Two</H2>
24
- <Separator />
25
- <EditScreenInfo path="app/(tabs)/index.tsx" />
26
- </YStack>
27
- );
22
+ <Theme name="light">
23
+ <YStack flex={1} alignItems="center" justifyContent="center">
24
+ <H2>Tab Two</H2>
25
+ <Separator />
26
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
27
+ </YStack>
28
+ </Theme>
29
+ );
28
30
  <% } else { %>
29
31
  return (
30
- <View style={styles.container}>
31
- <Text style={styles.title}>Tab Two</Text>
32
- <View style={styles.separator} />
33
- <EditScreenInfo path="app/(tabs)/two.tsx" />
34
- </View>
35
- );
32
+ <View style={styles.container}>
33
+ <Text style={styles.title}>Tab Two</Text>
34
+ <View style={styles.separator} />
35
+ <EditScreenInfo path="app/(tabs)/two.tsx" />
36
+ </View>
37
+ );
36
38
  <% } %>
37
39
  }
38
40
 
39
41
  <% if (props.stylingPackage?.name === "nativewind") { %>
40
42
  const styles = {
41
- container: `items-center flex-1 justify-center`,
42
- separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
43
- title: `text-xl font-bold`
44
- };
43
+ container: `items-center flex-1 justify-center`,
44
+ separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
45
+ title: `text-xl font-bold`
46
+ };
45
47
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
46
48
  const styles = StyleSheet.create({
47
- container: {
48
- alignItems: "center",
49
- flex: 1,
50
- justifyContent: "center",
51
- },
52
- separator: {
53
- height: 1,
54
- marginVertical: 30,
55
- width: "80%",
56
- },
57
- title: {
58
- fontSize: 20,
59
- fontWeight: "bold",
60
- }
61
- });
49
+ container: {
50
+ alignItems: "center",
51
+ flex: 1,
52
+ justifyContent: "center",
53
+ },
54
+ separator: {
55
+ height: 1,
56
+ marginVertical: 30,
57
+ width: "80%",
58
+ },
59
+ title: {
60
+ fontSize: 20,
61
+ fontWeight: "bold",
62
+ }
63
+ });
62
64
  <% } %>
@@ -1,48 +1,48 @@
1
1
  import { Stack } from "expo-router";
2
2
  <% if (props.stylingPackage?.name === "tamagui") { %>
3
- import React, { useEffect } from "react";
4
- import { TamaguiProvider } from 'tamagui'
5
- import { SplashScreen, Stack } from "expo-router";
6
- import { useFonts } from "expo-font";
3
+ import React, { useEffect } from "react";
4
+ import { TamaguiProvider } from 'tamagui'
5
+ import { SplashScreen, Stack } from "expo-router";
6
+ import { useFonts } from "expo-font";
7
7
 
8
- import config from '../tamagui.config'
8
+ import config from '../tamagui.config'
9
9
 
10
- SplashScreen.preventAutoHideAsync();
10
+ SplashScreen.preventAutoHideAsync();
11
11
  <% } else { %>
12
- import { Stack } from "expo-router";
12
+ import { Stack } from "expo-router";
13
13
  <% } %>
14
14
 
15
15
  export const unstable_settings = {
16
- // Ensure that reloading on `/modal` keeps a back button present.
17
- initialRouteName: "(tabs)",
16
+ // Ensure that reloading on `/modal` keeps a back button present.
17
+ initialRouteName: "(tabs)",
18
18
  };
19
19
 
20
20
  export default function RootLayout() {
21
- <% if (props.stylingPackage?.name === "tamagui") { %>
22
- const [loaded] = useFonts({
23
- Inter: require("@tamagui/font-inter/otf/Inter-Medium.otf"),
24
- InterBold: require("@tamagui/font-inter/otf/Inter-Bold.otf")
25
- });
21
+ <% if (props.stylingPackage?.name === "tamagui") { %>
22
+ const [loaded] = useFonts({
23
+ Inter: require("@tamagui/font-inter/otf/Inter-Medium.otf"),
24
+ InterBold: require("@tamagui/font-inter/otf/Inter-Bold.otf")
25
+ });
26
26
 
27
- useEffect(() => {
28
- if (loaded) {
29
- SplashScreen.hideAsync();
30
- }
31
- }, [loaded]);
27
+ useEffect(() => {
28
+ if (loaded) {
29
+ SplashScreen.hideAsync();
30
+ }
31
+ }, [loaded]);
32
32
 
33
- if (!loaded) return null;
34
- <% } %>
33
+ if (!loaded) return null;
34
+ <% } %>
35
35
 
36
- return (
37
- <% if (props.stylingPackage?.name === "tamagui") { %>
38
- <TamaguiProvider config={config}>
39
- <% } %>
40
- <Stack>
41
- <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
42
- <Stack.Screen name="modal" options={{ presentation: "modal" }} />
43
- </Stack>
44
- <% if (props.stylingPackage?.name === "tamagui") { %>
45
- </TamaguiProvider>
46
- <% } %>
47
- );
36
+ return (
37
+ <% if (props.stylingPackage?.name === "tamagui") { %>
38
+ <TamaguiProvider config={config}>
39
+ <% } %>
40
+ <Stack>
41
+ <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
42
+ <Stack.Screen name="modal" options={{ presentation: "modal" }} />
43
+ </Stack>
44
+ <% if (props.stylingPackage?.name === "tamagui") { %>
45
+ </TamaguiProvider>
46
+ <% } %>
47
+ );
48
48
  }