create-expo-stack 2.3.15 → 2.4.0-next.43d8ac0

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 (44) hide show
  1. package/README.md +8 -1
  2. package/build/commands/create-expo-stack.js +23 -2
  3. package/build/templates/base/App.tsx.ejs +34 -0
  4. package/build/templates/base/package.json.ejs +9 -0
  5. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +33 -1
  6. package/build/templates/packages/expo-router/drawer/app/(drawer)/news.tsx.ejs +34 -1
  7. package/build/templates/packages/expo-router/drawer/app/[...unmatched].tsx.ejs +51 -0
  8. package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +10 -2
  9. package/build/templates/packages/expo-router/stack/app/[...unmatched].tsx.ejs +53 -0
  10. package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +9 -3
  11. package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +61 -0
  12. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +101 -2
  13. package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +23 -1
  14. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +33 -0
  15. package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +33 -0
  16. package/build/templates/packages/expo-router/tabs/app/[...unmatched].tsx.ejs +53 -0
  17. package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +8 -0
  18. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +35 -0
  19. package/build/templates/packages/expo-router/tabs/components/edit-screen-info.tsx.ejs +52 -1
  20. package/build/templates/packages/react-navigation/App.tsx.ejs +11 -1
  21. package/build/templates/packages/react-navigation/components/edit-screen-info.tsx.ejs +82 -1
  22. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +38 -3
  23. package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +30 -3
  24. package/build/templates/packages/react-navigation/screens/details.tsx.ejs +46 -0
  25. package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +57 -1
  26. package/build/templates/packages/react-navigation/screens/one.tsx.ejs +53 -0
  27. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +105 -1
  28. package/build/templates/packages/react-navigation/screens/two.tsx.ejs +53 -0
  29. package/build/templates/packages/restyle/theme/Box.tsx.ejs +6 -0
  30. package/build/templates/packages/restyle/theme/Text.tsx.ejs +6 -0
  31. package/build/templates/packages/restyle/theme/index.ts.ejs +6 -0
  32. package/build/templates/packages/restyle/theme/theme.ts.ejs +67 -0
  33. package/build/templates/packages/unistyles/breakpoints.ts.ejs +9 -0
  34. package/build/templates/packages/unistyles/theme.ts.ejs +26 -0
  35. package/build/templates/packages/unistyles/unistyles.ts.ejs +28 -0
  36. package/build/types/types.d.ts +1 -1
  37. package/build/types/utilities/printOutput.d.ts +2 -2
  38. package/build/types.js +4 -2
  39. package/build/utilities/configureProjectFiles.js +22 -1
  40. package/build/utilities/generateProjectFiles.js +7 -1
  41. package/build/utilities/printOutput.js +14 -2
  42. package/build/utilities/runCLI.js +10 -2
  43. package/build/utilities/showHelp.js +3 -1
  44. package/package.json +66 -66
package/README.md CHANGED
@@ -12,13 +12,18 @@
12
12
 
13
13
  ## Sponsors
14
14
 
15
+ NativeWind
16
+ Restyle
17
+ StyleSheets
18
+ Tamagui
19
+
15
20
  Support this project by <a href="https://github.com/sponsors/danstepanov" target="_blank">becoming a sponsor</a>. Your logo will show up here with a link to your website.
16
21
 
17
22
  <a href="https://galaxies.dev/" target="_blank" style="margin-top: 10px;margin-right: 10px; margin-bottom: 10px;" ><img src="https://expostack.dev/galaxies-logo.svg" style="border-radius: 50%;"></a> <a href="https://expo.dev/" target="_blank" style="margin: 10px;"><img src="https://expostack.dev/expo-logo.svg" style="border-radius: 50%;"></a>
18
23
 
19
24
  ## Description
20
25
 
21
- This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, styling with StyleSheets, Tamagui, or NativeWind, and authentication via Supabase or Firebase.
26
+ This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, styling with NativeWind, Restyle, StyleSheets, or Tamagui and authentication via Supabase or Firebase.
22
27
 
23
28
  You can also use flags such as `--noInstall`, `--noGit`, and `--default` in order to customize your project. The CLI will attempt to automatically determine your package manager of choice but you can also pass in your preferred package manager via `--npm`, `--yarn`, `--pnpm`, or `--bun`. Roadmap coming soon...
24
29
 
@@ -51,7 +56,9 @@ Each project is generated based on the results of the CLI, on a per-file basis.
51
56
  | Expo System UI | System UI Library | v2 | System UI support |
52
57
  | Expo Web Browser | Web Browser Library | v12 | Open links in the browser |
53
58
  | NativeWind | UI Framework | v2 | Tailwind CSS for React Native |
59
+ | Restyle | UI Framework | v2 | Theme-based styling library for React Native |
54
60
  | Tamagui | UI Framework | v1 | Universal UI with a smart optimizing compiler |
61
+ | Unistyles | UI Framework | v2 | Superset of StyleSheet |
55
62
  | Safe Area Context | Safe Area Library | v4 | Safe area support |
56
63
  | React Native Web | Web Support | v0.19 | React Native for Web |
57
64
  | Firebase | Backend and Auth | v10 | Cloud-hosted NoSQL database from Google |
@@ -203,6 +203,14 @@ var command = {
203
203
  type: 'styling'
204
204
  });
205
205
  }
206
+ else if (options.unistyles) {
207
+ cliResults = (0, clearStylingPackages_1.default)(cliResults);
208
+ // Add unistyles package
209
+ cliResults.packages.push({
210
+ name: 'unistyles',
211
+ type: 'styling'
212
+ });
213
+ }
206
214
  else if (options.stylesheet) {
207
215
  cliResults = (0, clearStylingPackages_1.default)(cliResults);
208
216
  // Add stylesheet package
@@ -211,6 +219,19 @@ var command = {
211
219
  type: 'styling'
212
220
  });
213
221
  }
222
+ else if (options.restyle) {
223
+ try {
224
+ cliResults = (0, clearStylingPackages_1.default)(cliResults);
225
+ // Add stylesheet package
226
+ cliResults.packages.push({
227
+ name: 'restyle',
228
+ type: 'styling'
229
+ });
230
+ }
231
+ catch (error) {
232
+ console.log({ error: error });
233
+ }
234
+ }
214
235
  // if there is no style package, add stylesheet
215
236
  else if (cliResults.packages.find(function (p) { return p.type === 'styling'; }) === undefined) {
216
237
  cliResults.packages.push({
@@ -283,7 +304,7 @@ var command = {
283
304
  files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults);
284
305
  formattedFiles = [];
285
306
  formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox);
286
- return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox)];
307
+ return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox, stylingPackage)];
287
308
  case 16:
288
309
  _d.sent();
289
310
  _d.label = 17;
@@ -304,4 +325,4 @@ var command = {
304
325
  }); }
305
326
  };
306
327
  exports.default = command;
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
@@ -6,6 +6,12 @@ import React from 'react';
6
6
  import { View } from 'react-native';
7
7
  import { TamaguiProvider, Text, styled } from 'tamagui';
8
8
  import config from './tamagui.config'
9
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
10
+ import { ThemeProvider } from '@shopify/restyle';
11
+ import {theme, Text} from './theme';
12
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
13
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
14
+ import { Text, View } from 'react-native';
9
15
  <% } else {%>
10
16
  import { StyleSheet, Text, View } from 'react-native';
11
17
  <% } %>
@@ -43,6 +49,34 @@ import { StatusBar } from 'expo-status-bar';
43
49
  </TamaguiProvider >
44
50
  );
45
51
  }
52
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
53
+ export default function App() {
54
+ return (
55
+ <ThemeProvider theme={theme}>
56
+ <Text>Open up App.tsx to start working on your app!</Text>
57
+ <StatusBar style="auto" />
58
+ </ThemeProvider>
59
+ );
60
+ }
61
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
62
+ export default function App() {
63
+ const {styles} = useStyles(stylesheet)
64
+ return (
65
+ <View style={styles.container}>
66
+ <Text>Open up App.tsx to start working on your app!</Text>
67
+ <StatusBar style="auto" />
68
+ </View >
69
+ );
70
+ }
71
+
72
+ const stylesheet = createStyleSheet({
73
+ container: {
74
+ flex: 1,
75
+ backgroundColor: '#fff',
76
+ alignItems: 'center',
77
+ justifyContent: 'center',
78
+ },
79
+ });
46
80
  <% } else {%>
47
81
  export default function App() {
48
82
  return (
@@ -16,6 +16,10 @@
16
16
  <% if (props.stylingPackage?.name === "nativewind") { %>
17
17
  "nativewind": "^2.0.11",
18
18
  <% } %>
19
+
20
+ <% if (props.stylingPackage?.name === "restyle") { %>
21
+ "@shopify/restyle": "^2.4.2",
22
+ <% } %>
19
23
 
20
24
  <% if (props.stylingPackage?.name === "tamagui") { %>
21
25
  "tamagui": "1.74.8",
@@ -26,6 +30,10 @@
26
30
  "expo-font": "~11.4.0",
27
31
  <% } %>
28
32
 
33
+ <% if (props.stylingPackage?.name === "unistyles") { %>
34
+ "react-native-unistyles": "^2.1.1",
35
+ <% } %>
36
+
29
37
  <% if (props.navigationPackage?.type === "navigation") { %>
30
38
  "@react-navigation/native": "^6.1.7",
31
39
  "react-native-gesture-handler": "~2.12.0",
@@ -35,6 +43,7 @@
35
43
 
36
44
  <% if (props.navigationPackage?.name === "react-navigation") { %>
37
45
  "@react-navigation/stack": "^6.3.17",
46
+ "@expo/vector-icons": "^13.0.0",
38
47
  <% } %>
39
48
 
40
49
  <% if ((props.navigationPackage?.name === "react-navigation") && (props.stylingPackage?.name === "tamagui")) { %>
@@ -2,11 +2,19 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
- <% } else { %>
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from "react-native";
10
+ <% } else if (props.stylingPackage?.name === "stylesheet") { %>
6
11
  import { StyleSheet, Text, View } from "react-native";
7
12
  <% } %>
8
13
 
9
14
  const Page = () => {
15
+ <% if (props.stylingPackage?.name === "unistyles") { %>
16
+ const {styles} = useStyles(stylesheet)
17
+ <% } %>
10
18
  <% if (props.stylingPackage?.name === "nativewind") { %>
11
19
  return (
12
20
  <View className={styles.container}>
@@ -24,6 +32,13 @@ const Page = () => {
24
32
  </YStack>
25
33
  </Theme>
26
34
  );
35
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
36
+ return (
37
+ <Box flex={1} alignItems="center" justifyContent="center">
38
+ <Text variant="title">Home</Text>
39
+ <Box height={1} marginVertical="l_32" width="80%" />
40
+ </Box>
41
+ );
27
42
  <% } else { %>
28
43
  return (
29
44
  <View style={styles.container}>
@@ -42,6 +57,23 @@ export default Page;
42
57
  separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
43
58
  title: `text-xl font-bold`
44
59
  };
60
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
61
+ const stylesheet = createStyleSheet({
62
+ container: {
63
+ alignItems: "center",
64
+ flex: 1,
65
+ justifyContent: "center",
66
+ },
67
+ separator: {
68
+ height: 1,
69
+ marginVertical: 30,
70
+ width: "80%",
71
+ },
72
+ title: {
73
+ fontSize: 20,
74
+ fontWeight: "bold",
75
+ }
76
+ });
45
77
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
46
78
  const styles = StyleSheet.create({
47
79
  container: {
@@ -2,11 +2,20 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
- <% } else { %>
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from "react-native";
10
+ <% } else if (props.stylingPackage?.name === "stylesheet") { %>
6
11
  import { StyleSheet, Text, View } from "react-native";
7
12
  <% } %>
8
13
 
9
14
  const Page = () => {
15
+ <% if (props.stylingPackage?.name === "unistyles") { %>
16
+ const {styles} = useStyles(stylesheet)
17
+ <% } %>
18
+
10
19
  <% if (props.stylingPackage?.name === "nativewind") { %>
11
20
  return (
12
21
  <View className={styles.container}>
@@ -24,6 +33,13 @@ const Page = () => {
24
33
  </YStack>
25
34
  </Theme>
26
35
  );
36
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
37
+ return (
38
+ <Box flex={1} alignItems="center" justifyContent="center">
39
+ <Text variant="title">News</Text>
40
+ <Box height={1} marginVertical="l_32" width="80%" />
41
+ </Box>
42
+ );
27
43
  <% } else { %>
28
44
  return (
29
45
  <View style={styles.container}>
@@ -42,6 +58,23 @@ export default Page;
42
58
  separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
43
59
  title: `text-xl font-bold`
44
60
  };
61
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
62
+ const stylesheet = createStyleSheet({
63
+ container: {
64
+ alignItems: "center",
65
+ flex: 1,
66
+ justifyContent: "center",
67
+ },
68
+ separator: {
69
+ height: 1,
70
+ marginVertical: 30,
71
+ width: "80%",
72
+ },
73
+ title: {
74
+ fontSize: 20,
75
+ fontWeight: "bold",
76
+ }
77
+ });
45
78
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
46
79
  const styles = StyleSheet.create({
47
80
  container: {
@@ -1,14 +1,25 @@
1
1
  import { Link, Stack } from 'expo-router';
2
2
  <% if (props.stylingPackage?.name === "nativewind") {%>
3
3
  import { Text, View } from 'react-native';
4
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
5
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
+ import { Text, View } from "react-native";
4
7
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
5
8
  import { StyleSheet, Text, View } from 'react-native';
6
9
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
7
10
  import { YStack } from "tamagui";
8
11
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
12
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
13
+ import { Box, Text, makeStyles } from 'theme';
9
14
  <% } %>
10
15
 
11
16
  export default function NotFoundScreen() {
17
+ <% if (props.stylingPackage?.name === "restyle") { %>
18
+ const styles = useStyles();
19
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
20
+ const {styles} = useStyles(stylesheet);
21
+ <% } %>
22
+
12
23
  return (
13
24
  <% if (props.stylingPackage?.name === "nativewind") {%>
14
25
  <>
@@ -32,6 +43,18 @@ export default function NotFoundScreen() {
32
43
  </YStack>
33
44
  </Main>
34
45
  </Container>
46
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
47
+ <>
48
+ <Stack.Screen options={{ title: 'Oops!' }} />
49
+ <Box flex={1} justifyContent="center" alignItems="center" padding="ml_24">
50
+ <Text variant="title">This screen doesn't exist.</Text>
51
+ <Link href="/" style={styles.link}>
52
+ <Text variant="body" color="blue">
53
+ Go to home screen!
54
+ </Text>
55
+ </Link>
56
+ </Box>
57
+ </>
35
58
  <% } else { %>
36
59
  <>
37
60
  <Stack.Screen options={{ title: "Oops!" }} />
@@ -53,6 +76,27 @@ export default function NotFoundScreen() {
53
76
  link: `mt-4 pt-4`,
54
77
  linkText: `text-base text-[#2e78b7]`,
55
78
  };
79
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
80
+ const stylesheet = createStyleSheet({
81
+ container: {
82
+ flex: 1,
83
+ alignItems: 'center',
84
+ justifyContent: 'center',
85
+ padding: 20,
86
+ },
87
+ title: {
88
+ fontSize: 20,
89
+ fontWeight: 'bold',
90
+ },
91
+ link: {
92
+ marginTop: 16,
93
+ paddingVertical: 16,
94
+ },
95
+ linkText: {
96
+ fontSize: 14,
97
+ color: '#2e78b7',
98
+ },
99
+ });
56
100
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
57
101
  const styles = StyleSheet.create({
58
102
  container: {
@@ -74,4 +118,11 @@ export default function NotFoundScreen() {
74
118
  color: '#2e78b7',
75
119
  },
76
120
  });
121
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
122
+ const useStyles = makeStyles((theme) => ({
123
+ link: {
124
+ marginTop: theme.spacing.m_16,
125
+ paddingVertical: theme.spacing.m_16,
126
+ },
127
+ }));
77
128
  <% } %>
@@ -10,7 +10,11 @@ import { Slot } from 'expo-router';
10
10
  import config from '../tamagui.config'
11
11
 
12
12
  SplashScreen.preventAutoHideAsync();
13
- <% } %>
13
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
14
+ import { ThemeProvider } from '@shopify/restyle';
15
+
16
+ import { theme } from '../theme';
17
+ <% } %>
14
18
 
15
19
  export const unstable_settings = {
16
20
  // Ensure that reloading on `/modal` keeps a back button present.
@@ -36,12 +40,16 @@ export default function RootLayout() {
36
40
  return (
37
41
  <% if (props.stylingPackage?.name === "tamagui") { %>
38
42
  <TamaguiProvider config={config}>
43
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
44
+ <ThemeProvider theme={theme}>
39
45
  <% } %>
40
46
  <GestureHandlerRootView style={{ flex: 1 }}>
41
47
  <Slot />
42
48
  </GestureHandlerRootView>
43
49
  <% if (props.stylingPackage?.name === "tamagui") { %>
44
50
  </TamaguiProvider>
45
- <% } %>
51
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
52
+ </ThemeProvider>
53
+ <% } %>
46
54
  );
47
55
  }
@@ -1,14 +1,27 @@
1
1
  import { Link, Stack } from 'expo-router';
2
2
  <% if (props.stylingPackage?.name === "nativewind") {%>
3
3
  import { Text, View } from 'react-native';
4
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
5
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
+ import { Text, View } from 'react-native';
4
7
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
5
8
  import { StyleSheet, Text, View } from 'react-native';
6
9
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
7
10
  import { YStack } from "tamagui";
8
11
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
12
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
13
+ import { Box, Text, makeStyles } from 'theme';
9
14
  <% } %>
10
15
 
11
16
  export default function NotFoundScreen() {
17
+ <% if (props.stylingPackage?.name === "restyle") { %>
18
+ const styles = useStyles();
19
+ <% } %>
20
+
21
+ <% if (props.stylingPackage?.name === "unistyles") {%>
22
+ const {styles} = useStyles(stylesheet)
23
+ <% } %>
24
+
12
25
  return (
13
26
  <% if (props.stylingPackage?.name === "nativewind") {%>
14
27
  <>
@@ -32,6 +45,18 @@ export default function NotFoundScreen() {
32
45
  </YStack>
33
46
  </Main>
34
47
  </Container>
48
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
49
+ <>
50
+ <Stack.Screen options={{ title: 'Oops!' }} />
51
+ <Box flex={1} justifyContent="center" alignItems="center" padding="ml_24">
52
+ <Text variant="title">This screen doesn't exist.</Text>
53
+ <Link href="/" style={styles.link}>
54
+ <Text variant="body" color="blue">
55
+ Go to home screen!
56
+ </Text>
57
+ </Link>
58
+ </Box>
59
+ </>
35
60
  <% } else { %>
36
61
  <>
37
62
  <Stack.Screen options={{ title: "Oops!" }} />
@@ -53,6 +78,27 @@ export default function NotFoundScreen() {
53
78
  link: `mt-4 pt-4`,
54
79
  linkText: `text-base text-[#2e78b7]`,
55
80
  };
81
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
82
+ const stylesheet = createStyleSheet({
83
+ container: {
84
+ flex: 1,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ padding: 20,
88
+ },
89
+ title: {
90
+ fontSize: 20,
91
+ fontWeight: 'bold',
92
+ },
93
+ link: {
94
+ marginTop: 16,
95
+ paddingVertical: 16,
96
+ },
97
+ linkText: {
98
+ fontSize: 14,
99
+ color: '#2e78b7',
100
+ },
101
+ });
56
102
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
57
103
  const styles = StyleSheet.create({
58
104
  container: {
@@ -74,4 +120,11 @@ export default function NotFoundScreen() {
74
120
  color: '#2e78b7',
75
121
  },
76
122
  });
123
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
124
+ const useStyles = makeStyles((theme) => ({
125
+ link: {
126
+ marginTop: theme.spacing.m_16,
127
+ paddingVertical: theme.spacing.m_16,
128
+ },
129
+ }));
77
130
  <% } %>
@@ -5,9 +5,11 @@
5
5
  import { TamaguiProvider } from 'tamagui';
6
6
 
7
7
  import config from '../tamagui.config';
8
- <% } else { %>
9
- import { Stack } from "expo-router";
8
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
9
+ import { ThemeProvider } from '@shopify/restyle';
10
+ import { theme } from 'theme';
10
11
  <% } %>
12
+ import { Stack } from "expo-router";
11
13
 
12
14
  export default function Layout() {
13
15
 
@@ -29,10 +31,14 @@ export default function Layout() {
29
31
  return (
30
32
  <% if (props.stylingPackage?.name === "tamagui") { %>
31
33
  <TamaguiProvider config={config}>
34
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
35
+ <ThemeProvider theme={theme}>
32
36
  <% } %>
33
- <Stack />
37
+ <Stack />
34
38
  <% if (props.stylingPackage?.name === "tamagui") { %>
35
39
  </TamaguiProvider>
40
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
41
+ </ThemeProvider >
36
42
  <% } %>
37
43
  );
38
44
  }
@@ -5,6 +5,12 @@
5
5
  import { Stack, useRouter } from "expo-router";
6
6
  import { Button, Text, YStack } from "tamagui";
7
7
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
8
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
9
+ import { Box, Text } from 'theme';
10
+ import { TouchableOpacity } from 'react-native';
11
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
12
+ import { createStyleSheet, useStyles } from 'react-native-unistyles';
13
+ import { Text, TouchableOpacity, View } from "react-native";
8
14
  <% } else { %>
9
15
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
10
16
  <% } %>
@@ -14,6 +20,11 @@ import { Stack, useLocalSearchParams, useRouter } from "expo-router";
14
20
  export default function Details() {
15
21
  const { name } = useLocalSearchParams();
16
22
  const router = useRouter();
23
+
24
+ <% if (props.stylingPackage?.name === "unistyles") { %>
25
+ const {styles} = useStyles(stylesheet);
26
+ <% } %>
27
+
17
28
  <% if (props.stylingPackage?.name === "nativewind") { %>
18
29
  const BackButton = () => (
19
30
  <TouchableOpacity onPress={router.back}>
@@ -28,6 +39,17 @@ export default function Details() {
28
39
  const BackButton = () => (
29
40
  <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>
30
41
  )
42
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
43
+ const BackButton = () => (
44
+ <TouchableOpacity onPress={router.back}>
45
+ <Box flexDirection="row">
46
+ <Feather name="chevron-left" size={16} color="#007AFF" />
47
+ <Text color="blue" marginLeft="xs_4">
48
+ Back
49
+ </Text>
50
+ </Box>
51
+ </TouchableOpacity>
52
+ );
31
53
  <% } else { %>
32
54
  const BackButton = () => (
33
55
  <TouchableOpacity onPress={router.back}>
@@ -58,6 +80,18 @@ export default function Details() {
58
80
  </YStack>
59
81
  </Main>
60
82
  </Container>
83
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
84
+ <>
85
+ <Stack.Screen options={{ title: 'Details', headerLeft: () => <BackButton /> }} />
86
+ <Box flex={1} padding="ml_24">
87
+ <Box flex={1} maxWidth={960}>
88
+ <Text variant="extra_large">Details</Text>
89
+ <Text variant="large" color="darkGray">
90
+ Showing details for user {name}.
91
+ </Text>
92
+ </Box>
93
+ </Box>
94
+ </>
61
95
  <% } else { %>
62
96
  <View style={styles.container}>
63
97
  <Stack.Screen options={{ title: "Details", headerLeft: () => <BackButton /> }} />
@@ -79,6 +113,33 @@ export default function Details() {
79
113
  title: "text-[64px] font-bold",
80
114
  subtitle: "text-4xl text-gray-700",
81
115
  };
116
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
117
+ const stylesheet = createStyleSheet({
118
+ backButton: {
119
+ flexDirection: "row",
120
+ },
121
+ backButtonText: {
122
+ color: "#007AFF",
123
+ marginLeft: 4,
124
+ },
125
+ container: {
126
+ flex: 1,
127
+ padding: 24,
128
+ },
129
+ main: {
130
+ flex: 1,
131
+ maxWidth: 960,
132
+ marginHorizontal: "auto",
133
+ },
134
+ title: {
135
+ fontSize: 64,
136
+ fontWeight: "bold",
137
+ },
138
+ subtitle: {
139
+ fontSize: 36,
140
+ color: "#38434D",
141
+ },
142
+ });
82
143
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
83
144
  const styles = StyleSheet.create({
84
145
  backButton: {