create-expo-stack 2.0.8 → 2.0.10
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/build/commands/create-expo-stack.js +6 -5
- package/build/templates/base/App.tsx.ejs +41 -0
- package/build/templates/base/app.json.ejs +43 -0
- package/build/templates/base/assets/adaptive-icon.png +0 -0
- package/build/templates/base/assets/favicon.png +0 -0
- package/build/templates/base/assets/icon.png +0 -0
- package/build/templates/base/assets/splash.png +0 -0
- package/build/templates/base/babel.config.js.ejs +17 -0
- package/build/templates/base/package.json.ejs +75 -0
- package/build/templates/base/tsconfig.json.ejs +16 -0
- package/build/templates/packages/expo-router/expo-env.d.ts +4 -0
- package/build/templates/packages/expo-router/index.ts +1 -0
- package/build/templates/packages/expo-router/metro.config.js +11 -0
- package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +56 -0
- package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +58 -0
- package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +96 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +57 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +52 -0
- package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +15 -0
- package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +55 -0
- package/build/templates/packages/expo-router/tabs/components/edit-screen-info.tsx.ejs +84 -0
- package/build/templates/packages/nativewind/app.d.ts +2 -0
- package/build/templates/packages/nativewind/tailwind.config.js.ejs +16 -0
- package/build/templates/packages/react-navigation/App.tsx.ejs +8 -0
- package/build/templates/packages/react-navigation/components/edit-screen-info.tsx.ejs +99 -0
- package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +98 -0
- package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +62 -0
- package/build/templates/packages/react-navigation/screens/details.tsx.ejs +61 -0
- package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +57 -0
- package/build/templates/packages/react-navigation/screens/one.tsx.ejs +54 -0
- package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +97 -0
- package/build/templates/packages/react-navigation/screens/two.tsx.ejs +54 -0
- package/package.json +2 -2
|
@@ -49,7 +49,8 @@ var gluegun_1 = require("gluegun");
|
|
|
49
49
|
var gradient = require("gradient-string");
|
|
50
50
|
var figlet = require("figlet");
|
|
51
51
|
// import { getUserPackageManager } from '../utilities/getUserPackageManager';
|
|
52
|
-
var DEFAULT_APP_NAME = "
|
|
52
|
+
var DEFAULT_APP_NAME = "myExpoApp";
|
|
53
|
+
var TITLE_TEXT = "create expo stack";
|
|
53
54
|
var availablePackages = ["nativewind", "react-navigation", "expo-router"];
|
|
54
55
|
var defaultOptions = {
|
|
55
56
|
projectName: DEFAULT_APP_NAME,
|
|
@@ -79,7 +80,7 @@ var command = {
|
|
|
79
80
|
askName = {
|
|
80
81
|
type: 'input',
|
|
81
82
|
name: 'name',
|
|
82
|
-
message:
|
|
83
|
+
message: "What do you want to name your project? (".concat(DEFAULT_APP_NAME, "})"),
|
|
83
84
|
};
|
|
84
85
|
return [4 /*yield*/, ask(askName)];
|
|
85
86
|
case 1:
|
|
@@ -153,7 +154,7 @@ var command = {
|
|
|
153
154
|
switch (_a.label) {
|
|
154
155
|
case 0:
|
|
155
156
|
cesGradient = gradient(Object.values(poimandresTheme));
|
|
156
|
-
return [4 /*yield*/, figlet.text(
|
|
157
|
+
return [4 /*yield*/, figlet.text(TITLE_TEXT, {
|
|
157
158
|
font: "Standard",
|
|
158
159
|
horizontalLayout: "default",
|
|
159
160
|
verticalLayout: "default",
|
|
@@ -207,7 +208,7 @@ var command = {
|
|
|
207
208
|
askName = {
|
|
208
209
|
type: 'input',
|
|
209
210
|
name: 'name',
|
|
210
|
-
message:
|
|
211
|
+
message: "What do you want to name your project? (".concat(DEFAULT_APP_NAME, ")"),
|
|
211
212
|
};
|
|
212
213
|
return [4 /*yield*/, ask(askName)];
|
|
213
214
|
case 4:
|
|
@@ -434,4 +435,4 @@ var command = {
|
|
|
434
435
|
}); },
|
|
435
436
|
};
|
|
436
437
|
exports.default = command;
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBZ0Q7QUFDaEQsMENBQTZDO0FBQzdDLCtCQUFrQztBQUVsQyw4RUFBOEU7QUFFOUUsSUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7QUFRdkMsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQVUsQ0FBQztBQWdCckYsSUFBTSxjQUFjLEdBQWU7SUFDakMsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLElBQUk7S0FDbEI7Q0FDRixDQUFDO0FBRUYsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixHQUFHLEVBQUUsVUFBTyxPQUFPO1FBUWpCLFNBQWUsTUFBTTs7Ozs7OzRCQUdmLFVBQVUsR0FBRyxjQUFjLENBQUM7NEJBRWhDLCtEQUErRDs0QkFDL0QsSUFBSSxLQUFLLEVBQUU7Z0NBQ1QsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7NkJBQ2hDO2lDQUdHLENBQUMsS0FBSyxFQUFOLHdCQUFNOzRCQUNGLE9BQU8sR0FBRztnQ0FDZCxJQUFJLEVBQUUsT0FBTztnQ0FDYixJQUFJLEVBQUUsTUFBTTtnQ0FDWixPQUFPLEVBQUUsc0RBQXNEOzZCQUNoRSxDQUFBOzRCQUNnQixxQkFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUE7OzRCQUEzQixTQUFTLENBQUEsU0FBa0IsQ0FBQSxLQUF2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
|
|
438
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBZ0Q7QUFDaEQsMENBQTZDO0FBQzdDLCtCQUFrQztBQUVsQyw4RUFBOEU7QUFFOUUsSUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckMsSUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUM7QUFRdkMsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQVUsQ0FBQztBQWdCckYsSUFBTSxjQUFjLEdBQWU7SUFDakMsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixRQUFRLEVBQUUsRUFBRTtJQUNaLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxLQUFLO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLElBQUk7S0FDbEI7Q0FDRixDQUFDO0FBRUYsSUFBTSxPQUFPLEdBQW1CO0lBQzlCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsV0FBVyxFQUFFLG1FQUFtRTtJQUNoRixHQUFHLEVBQUUsVUFBTyxPQUFPO1FBUWpCLFNBQWUsTUFBTTs7Ozs7OzRCQUdmLFVBQVUsR0FBRyxjQUFjLENBQUM7NEJBRWhDLCtEQUErRDs0QkFDL0QsSUFBSSxLQUFLLEVBQUU7Z0NBQ1QsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7NkJBQ2hDO2lDQUdHLENBQUMsS0FBSyxFQUFOLHdCQUFNOzRCQUNGLE9BQU8sR0FBRztnQ0FDZCxJQUFJLEVBQUUsT0FBTztnQ0FDYixJQUFJLEVBQUUsTUFBTTtnQ0FDWixPQUFPLEVBQUUsa0RBQTJDLGdCQUFnQixPQUFJOzZCQUN6RSxDQUFBOzRCQUNnQixxQkFBTSxHQUFHLENBQUMsT0FB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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
<% if (props.useNativewind) {%>
|
|
4
|
+
import { Text, View } from 'react-native';
|
|
5
|
+
<% } else {%>
|
|
6
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
7
|
+
<% } %>
|
|
8
|
+
import { StatusBar } from 'expo-status-bar';
|
|
9
|
+
|
|
10
|
+
<% if (props.useNativewind) {%>
|
|
11
|
+
export default function App() {
|
|
12
|
+
return (
|
|
13
|
+
<View className={styles.container} %>>
|
|
14
|
+
<Text>Open up App.tsx to start working on your app!</Text>
|
|
15
|
+
<StatusBar style="auto" />
|
|
16
|
+
</View>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const styles = {
|
|
21
|
+
container: 'flex flex-1 items-center justify-center bg-white',
|
|
22
|
+
};
|
|
23
|
+
<% } else {%>
|
|
24
|
+
export default function App() {
|
|
25
|
+
return (
|
|
26
|
+
<View style={styles.container} %>>
|
|
27
|
+
<Text>Open up App.tsx to start working on your app!</Text>
|
|
28
|
+
<StatusBar style="auto" />
|
|
29
|
+
</View>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const styles = StyleSheet.create({
|
|
34
|
+
container: {
|
|
35
|
+
flex: 1,
|
|
36
|
+
backgroundColor: '#fff',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
<% } %>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expo": {
|
|
3
|
+
"name": "<%= props.projectName %>",
|
|
4
|
+
"slug": "<%= props.projectName %>",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
7
|
+
"scheme": "<%= props.projectName %>",
|
|
8
|
+
"web": {
|
|
9
|
+
"bundler": "metro",
|
|
10
|
+
"output": "static",
|
|
11
|
+
"favicon": "./assets/favicon.png"
|
|
12
|
+
},
|
|
13
|
+
"plugins": ["expo-router"],
|
|
14
|
+
"experiments": {
|
|
15
|
+
"typedRoutes": true
|
|
16
|
+
},
|
|
17
|
+
<% } else { %>
|
|
18
|
+
"web": {
|
|
19
|
+
"favicon": "./assets/favicon.png"
|
|
20
|
+
},
|
|
21
|
+
<% } %>
|
|
22
|
+
"orientation": "portrait",
|
|
23
|
+
"icon": "./assets/icon.png",
|
|
24
|
+
"userInterfaceStyle": "light",
|
|
25
|
+
"splash": {
|
|
26
|
+
"image": "./assets/splash.png",
|
|
27
|
+
"resizeMode": "contain",
|
|
28
|
+
"backgroundColor": "#ffffff"
|
|
29
|
+
},
|
|
30
|
+
"assetBundlePatterns": [
|
|
31
|
+
"**/*"
|
|
32
|
+
],
|
|
33
|
+
"ios": {
|
|
34
|
+
"supportsTablet": true
|
|
35
|
+
},
|
|
36
|
+
"android": {
|
|
37
|
+
"adaptiveIcon": {
|
|
38
|
+
"foregroundImage": "./assets/adaptive-icon.png",
|
|
39
|
+
"backgroundColor": "#ffffff"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module.exports = function(api) {
|
|
2
|
+
api.cache(true);
|
|
3
|
+
let plugins = [];
|
|
4
|
+
|
|
5
|
+
<% if (props.useNativewind) { %>
|
|
6
|
+
plugins.push('nativewind/babel');
|
|
7
|
+
<% } %>
|
|
8
|
+
|
|
9
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
10
|
+
plugins.push('expo-router/babel');
|
|
11
|
+
<% } %>
|
|
12
|
+
|
|
13
|
+
return {
|
|
14
|
+
presets: ['babel-preset-expo'],
|
|
15
|
+
plugins: plugins,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= props.projectName %>",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"android": "expo start --android",
|
|
6
|
+
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write",
|
|
7
|
+
"ios": "expo start --ios",
|
|
8
|
+
"start": "expo start",
|
|
9
|
+
"web": "expo start --web"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
<% if (props.useNativewind) { %>
|
|
13
|
+
"nativewind": "^2.0.11",
|
|
14
|
+
<% } %>
|
|
15
|
+
|
|
16
|
+
<% if (props.navigationPackage?.type === "navigation") { %>
|
|
17
|
+
"@react-navigation/native": "^6.1.7",
|
|
18
|
+
"react-native-gesture-handler": "~2.12.0",
|
|
19
|
+
"react-native-safe-area-context": "4.6.3",
|
|
20
|
+
"react-native-screens": "~3.22.0",
|
|
21
|
+
<% } %>
|
|
22
|
+
|
|
23
|
+
<% if (props.navigationPackage?.name === "react-navigation") { %>
|
|
24
|
+
"@react-navigation/stack": "^6.3.17",
|
|
25
|
+
<% } %>
|
|
26
|
+
|
|
27
|
+
<% if (props.navigationPackage?.options === "tabs" && props.navigationPackage?.name === "react-navigation") { %>
|
|
28
|
+
"@react-navigation/bottom-tabs": "^6.5.8",
|
|
29
|
+
<% } %>
|
|
30
|
+
|
|
31
|
+
<% if (props.navigationPackage?.name === "expo-router") { %>
|
|
32
|
+
"@expo/vector-icons": "^13.0.0",
|
|
33
|
+
"expo-linking": "~5.0.2",
|
|
34
|
+
"expo-router": "^2.0.0",
|
|
35
|
+
"expo-system-ui": "~2.4.0",
|
|
36
|
+
"expo-web-browser": "~12.3.2",
|
|
37
|
+
"react-dom": "18.2.0",
|
|
38
|
+
"react-native-web": "~0.19.6",
|
|
39
|
+
<% } %>
|
|
40
|
+
|
|
41
|
+
"expo": "~49.0.11",
|
|
42
|
+
"expo-status-bar": "~1.6.0",
|
|
43
|
+
"react": "18.2.0",
|
|
44
|
+
"react-native": "0.72.4"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@babel/core": "^7.20.0",
|
|
48
|
+
"@types/react": "~18.2.14",
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
|
50
|
+
"@typescript-eslint/parser": "^6.7.2",
|
|
51
|
+
"eslint": "^8.50.0",
|
|
52
|
+
"eslint-config-universe": "^12.0.0",
|
|
53
|
+
"prettier": "^3.0.3",
|
|
54
|
+
<% if (props.useNativewind) { %>
|
|
55
|
+
"tailwindcss": "3.3.2",
|
|
56
|
+
<% } %>
|
|
57
|
+
"typescript": "^5.1.3"
|
|
58
|
+
},
|
|
59
|
+
"eslintConfig": {
|
|
60
|
+
"extends": "universe/native"
|
|
61
|
+
},
|
|
62
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
63
|
+
"resolutions": {
|
|
64
|
+
"metro": "0.76.0",
|
|
65
|
+
"metro-resolver": "0.76.0"
|
|
66
|
+
},
|
|
67
|
+
"overrides": {
|
|
68
|
+
"metro": "0.76.0",
|
|
69
|
+
"metro-resolver": "0.76.0"
|
|
70
|
+
},
|
|
71
|
+
<% } else { %>
|
|
72
|
+
"main": "node_modules/expo/AppEntry.js",
|
|
73
|
+
<% } %>
|
|
74
|
+
"private": true
|
|
75
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "expo/tsconfig.base",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"strict": true
|
|
5
|
+
<% if (props.navigationPackage?.name === 'expo-router') { %>
|
|
6
|
+
},
|
|
7
|
+
"include": [
|
|
8
|
+
"**/*.ts",
|
|
9
|
+
"**/*.tsx",
|
|
10
|
+
".expo/types/**/*.ts",
|
|
11
|
+
"expo-env.d.ts"
|
|
12
|
+
]
|
|
13
|
+
<% } else { %>
|
|
14
|
+
}
|
|
15
|
+
<% } %>
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "expo-router/entry";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Learn more https://docs.expo.io/guides/customizing-metro
|
|
2
|
+
const { getDefaultConfig } = require('expo/metro-config');
|
|
3
|
+
|
|
4
|
+
/** @type {import('expo/metro-config').MetroConfig} */
|
|
5
|
+
// eslint-disable-next-line no-undef
|
|
6
|
+
const config = getDefaultConfig(__dirname, {
|
|
7
|
+
// [Web-only]: Enables CSS support in Metro.
|
|
8
|
+
isCSSEnabled: true,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
module.exports = config;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Feather } from "@expo/vector-icons";
|
|
2
|
+
import { Stack, useRouter } from "expo-router";
|
|
3
|
+
<% if (props.useNativewind) { %>
|
|
4
|
+
import { Text, TouchableOpacity, View } from "react-native";
|
|
5
|
+
<% } else { %>
|
|
6
|
+
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
7
|
+
<% } %>
|
|
8
|
+
|
|
9
|
+
export default function Layout() {
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
<% if (props.useNativewind) { %>
|
|
12
|
+
const BackButton = () => (
|
|
13
|
+
<TouchableOpacity onPress={router.back}>
|
|
14
|
+
<View className={styles.backButton}>
|
|
15
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
16
|
+
<Text className={styles.backButtonText}>Back</Text>
|
|
17
|
+
</View>
|
|
18
|
+
</TouchableOpacity>
|
|
19
|
+
);
|
|
20
|
+
<% } else { %>
|
|
21
|
+
const BackButton = () => (
|
|
22
|
+
<TouchableOpacity onPress={router.back}>
|
|
23
|
+
<View style={styles.backButton}>
|
|
24
|
+
<Feather name="chevron-left" size={16} color="#007AFF" />
|
|
25
|
+
<Text style={styles.backButtonText}>Back</Text>
|
|
26
|
+
</View>
|
|
27
|
+
</TouchableOpacity>
|
|
28
|
+
);
|
|
29
|
+
<% } %>
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Stack>
|
|
33
|
+
<Stack.Screen name="index" options={{ title: "Overview" }} />
|
|
34
|
+
<Stack.Screen name="details"
|
|
35
|
+
options={{ title: "Details", headerLeft: () => <BackButton /> }}
|
|
36
|
+
/>
|
|
37
|
+
</Stack>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
<% if (props.useNativewind) { %>
|
|
42
|
+
const styles = {
|
|
43
|
+
backButton: "flex-row",
|
|
44
|
+
backButtonText: "text-blue-500 ml-1",
|
|
45
|
+
};
|
|
46
|
+
<% } else { %>
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
backButton: {
|
|
49
|
+
flexDirection: "row",
|
|
50
|
+
},
|
|
51
|
+
backButtonText: {
|
|
52
|
+
color: "#007AFF",
|
|
53
|
+
marginLeft: 4,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
<% } %>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<% if (props.useNativewind) { %>
|
|
2
|
+
import { View, Text } from "react-native";
|
|
3
|
+
<% } else { %>
|
|
4
|
+
import { StyleSheet, View, Text } from "react-native";
|
|
5
|
+
<% } %>
|
|
6
|
+
import { useLocalSearchParams } from "expo-router";
|
|
7
|
+
|
|
8
|
+
export default function Details() {
|
|
9
|
+
const { name } = useLocalSearchParams();
|
|
10
|
+
<% if (props.useNativewind) { %>
|
|
11
|
+
return (
|
|
12
|
+
<View className={styles.container}>
|
|
13
|
+
<View className={styles.main}>
|
|
14
|
+
<Text className={styles.title}>Details</Text>
|
|
15
|
+
<Text className={styles.subtitle}>Showing details for user {name}.</Text>
|
|
16
|
+
</View>
|
|
17
|
+
</View>
|
|
18
|
+
);
|
|
19
|
+
<% } else { %>
|
|
20
|
+
return (
|
|
21
|
+
<View style={styles.container}>
|
|
22
|
+
<View style={styles.main}>
|
|
23
|
+
<Text style={styles.title}>Details</Text>
|
|
24
|
+
<Text style={styles.subtitle}>Showing details for user {name}.</Text>
|
|
25
|
+
</View>
|
|
26
|
+
</View>
|
|
27
|
+
);
|
|
28
|
+
<% } %>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
<% if (props.useNativewind) { %>
|
|
32
|
+
const styles = {
|
|
33
|
+
container: "flex-1 p-6",
|
|
34
|
+
main: "flex-1 max-w-[960]",
|
|
35
|
+
title: "text-[64px] font-bold",
|
|
36
|
+
subtitle: "text-4xl text-gray-700",
|
|
37
|
+
};
|
|
38
|
+
<% } else { %>
|
|
39
|
+
const styles = StyleSheet.create({
|
|
40
|
+
container: {
|
|
41
|
+
flex: 1,
|
|
42
|
+
padding: 24,
|
|
43
|
+
},
|
|
44
|
+
main: {
|
|
45
|
+
flex: 1,
|
|
46
|
+
maxWidth: 960,
|
|
47
|
+
marginHorizontal: "auto",
|
|
48
|
+
},
|
|
49
|
+
title: {
|
|
50
|
+
fontSize: 64,
|
|
51
|
+
fontWeight: "bold",
|
|
52
|
+
},
|
|
53
|
+
subtitle: {
|
|
54
|
+
fontSize: 36,
|
|
55
|
+
color: "#38434D",
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
<% } %>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<% if (props.useNativewind) { %>
|
|
2
|
+
import { Text, TouchableOpacity, View } from "react-native";
|
|
3
|
+
<% } else { %>
|
|
4
|
+
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
5
|
+
<% } %>
|
|
6
|
+
import { Link } from "expo-router";
|
|
7
|
+
|
|
8
|
+
export default function Page() {
|
|
9
|
+
<% if (props.useNativewind) { %>
|
|
10
|
+
return (
|
|
11
|
+
<View className={styles.container}>
|
|
12
|
+
<View className={styles.main}>
|
|
13
|
+
<View>
|
|
14
|
+
<Text className={styles.title}>Hello World</Text>
|
|
15
|
+
<Text className={styles.subtitle}>This is the first page of your app.</Text>
|
|
16
|
+
</View>
|
|
17
|
+
<Link href={{ pathname: "/details", params: { name: "Dan" } }} asChild>
|
|
18
|
+
<TouchableOpacity className={styles.button} >
|
|
19
|
+
<Text className={styles.buttonText}>Show Details</Text>
|
|
20
|
+
</TouchableOpacity>
|
|
21
|
+
</Link>
|
|
22
|
+
</View>
|
|
23
|
+
</View>
|
|
24
|
+
);
|
|
25
|
+
<% } else { %>
|
|
26
|
+
return (
|
|
27
|
+
<View style={styles.container}>
|
|
28
|
+
<View style={styles.main}>
|
|
29
|
+
<View>
|
|
30
|
+
<Text style={styles.title}>Hello World</Text>
|
|
31
|
+
<Text style={styles.subtitle}>This is the first page of your app.</Text>
|
|
32
|
+
</View>
|
|
33
|
+
<Link href={{ pathname: "/details", params: { name: "Dan" } }} asChild>
|
|
34
|
+
<TouchableOpacity style={styles.button} >
|
|
35
|
+
<Text style={styles.buttonText}>Show Details</Text>
|
|
36
|
+
</TouchableOpacity>
|
|
37
|
+
</Link>
|
|
38
|
+
</View>
|
|
39
|
+
</View>
|
|
40
|
+
);
|
|
41
|
+
<% } %>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
<% if (props.useNativewind) { %>
|
|
45
|
+
const styles = {
|
|
46
|
+
button: "items-center bg-indigo-500 rounded-[28px] shadow-md p-4",
|
|
47
|
+
buttonText: "text-white text-lg font-semibold text-center",
|
|
48
|
+
container: "flex-1 p-6",
|
|
49
|
+
main: "flex-1 max-w-[960] justify-between",
|
|
50
|
+
title: "text-[64px] font-bold",
|
|
51
|
+
subtitle: "text-4xl text-gray-700",
|
|
52
|
+
};
|
|
53
|
+
<% } else { %>
|
|
54
|
+
const styles = StyleSheet.create({
|
|
55
|
+
button: {
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
backgroundColor: "#6366F1",
|
|
58
|
+
borderRadius: 24,
|
|
59
|
+
elevation: 5,
|
|
60
|
+
flexDirection: "row",
|
|
61
|
+
justifyContent: "center",
|
|
62
|
+
padding: 16,
|
|
63
|
+
shadowColor: "#000",
|
|
64
|
+
shadowOffset: {
|
|
65
|
+
height: 2,
|
|
66
|
+
width: 0
|
|
67
|
+
},
|
|
68
|
+
shadowOpacity: 0.25,
|
|
69
|
+
shadowRadius: 3.84
|
|
70
|
+
},
|
|
71
|
+
buttonText: {
|
|
72
|
+
color: "#FFFFFF",
|
|
73
|
+
fontSize: 16,
|
|
74
|
+
fontWeight: "600",
|
|
75
|
+
textAlign: "center",
|
|
76
|
+
},
|
|
77
|
+
container: {
|
|
78
|
+
flex: 1,
|
|
79
|
+
padding: 24,
|
|
80
|
+
},
|
|
81
|
+
main: {
|
|
82
|
+
flex: 1,
|
|
83
|
+
maxWidth: 960,
|
|
84
|
+
marginHorizontal: "auto",
|
|
85
|
+
justifyContent: "space-between",
|
|
86
|
+
},
|
|
87
|
+
title: {
|
|
88
|
+
fontSize: 64,
|
|
89
|
+
fontWeight: "bold",
|
|
90
|
+
},
|
|
91
|
+
subtitle: {
|
|
92
|
+
color: "#38434D",
|
|
93
|
+
fontSize: 36,
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
<% } %>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import FontAwesome from "@expo/vector-icons/FontAwesome";
|
|
2
|
+
import { Link, Tabs } from "expo-router";
|
|
3
|
+
import { Pressable, StyleSheet } from "react-native";
|
|
4
|
+
|
|
5
|
+
function TabBarIcon(props: {
|
|
6
|
+
name: React.ComponentProps<typeof FontAwesome>["name"];
|
|
7
|
+
color: string;
|
|
8
|
+
}) {
|
|
9
|
+
return <FontAwesome size={28} style={styles.tabBarIcon} {...props} />;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default function TabLayout() {
|
|
13
|
+
return (
|
|
14
|
+
<Tabs
|
|
15
|
+
screenOptions={{
|
|
16
|
+
tabBarActiveTintColor: "black",
|
|
17
|
+
}}>
|
|
18
|
+
<Tabs.Screen
|
|
19
|
+
name="index"
|
|
20
|
+
options={{
|
|
21
|
+
title: "Tab One",
|
|
22
|
+
tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
|
|
23
|
+
headerRight: () => (
|
|
24
|
+
<Link href="/modal" asChild>
|
|
25
|
+
<Pressable>
|
|
26
|
+
{({ pressed }) => (
|
|
27
|
+
<FontAwesome
|
|
28
|
+
name="info-circle"
|
|
29
|
+
size={25}
|
|
30
|
+
color="gray"
|
|
31
|
+
style={[styles.headerRight, { opacity: pressed ? 0.5 : 1 }]}
|
|
32
|
+
/>
|
|
33
|
+
)}
|
|
34
|
+
</Pressable>
|
|
35
|
+
</Link>
|
|
36
|
+
),
|
|
37
|
+
}}
|
|
38
|
+
/>
|
|
39
|
+
<Tabs.Screen
|
|
40
|
+
name="two"
|
|
41
|
+
options={{
|
|
42
|
+
title: "Tab Two",
|
|
43
|
+
tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
|
|
44
|
+
}}
|
|
45
|
+
/>
|
|
46
|
+
</Tabs>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const styles = StyleSheet.create({
|
|
51
|
+
headerRight: {
|
|
52
|
+
marginRight: 15
|
|
53
|
+
},
|
|
54
|
+
tabBarIcon: {
|
|
55
|
+
marginBottom: -3
|
|
56
|
+
}
|
|
57
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<% if (props.useNativewind) { %>
|
|
2
|
+
import { Text, View } from "react-native";
|
|
3
|
+
<% } else { %>
|
|
4
|
+
import { StyleSheet, Text, View } from "react-native";
|
|
5
|
+
<% } %>
|
|
6
|
+
|
|
7
|
+
import EditScreenInfo from "../../components/edit-screen-info";
|
|
8
|
+
|
|
9
|
+
export default function TabOneScreen() {
|
|
10
|
+
<% if (props.useNativewind) { %>
|
|
11
|
+
return (
|
|
12
|
+
<View className={styles.container}>
|
|
13
|
+
<Text className={styles.title}>Tab One</Text>
|
|
14
|
+
<View className={styles.separator} />
|
|
15
|
+
<EditScreenInfo path="app/(tabs)/index.tsx" />
|
|
16
|
+
</View>
|
|
17
|
+
);
|
|
18
|
+
<% } else { %>
|
|
19
|
+
return (
|
|
20
|
+
<View style={styles.container}>
|
|
21
|
+
<Text style={styles.title}>Tab One</Text>
|
|
22
|
+
<View style={styles.separator} />
|
|
23
|
+
<EditScreenInfo path="app/(tabs)/index.tsx" />
|
|
24
|
+
</View>
|
|
25
|
+
);
|
|
26
|
+
<% } %>
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
<% if (props.useNativewind) { %>
|
|
30
|
+
const styles = {
|
|
31
|
+
container: `items-center flex-1 justify-center`,
|
|
32
|
+
separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
|
|
33
|
+
title: `text-xl font-bold`
|
|
34
|
+
};
|
|
35
|
+
<% } else { %>
|
|
36
|
+
const styles = StyleSheet.create({
|
|
37
|
+
container: {
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
flex: 1,
|
|
40
|
+
justifyContent: "center",
|
|
41
|
+
},
|
|
42
|
+
separator: {
|
|
43
|
+
height: 1,
|
|
44
|
+
marginVertical: 30,
|
|
45
|
+
width: "80%",
|
|
46
|
+
},
|
|
47
|
+
title: {
|
|
48
|
+
fontSize: 20,
|
|
49
|
+
fontWeight: "bold",
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
<% } %>
|