Skip to content

Commit 46a790c

Browse files
update: enhance project setup prompts with additional customization options and fix import path for HomeScreen
1 parent e9c4c85 commit 46a790c

File tree

3 files changed

+33
-16
lines changed

3 files changed

+33
-16
lines changed

index.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,22 @@ async function setup() {
2121
// Create the React Native project with user inputs
2222
await createReactNative({
2323
appPath: prompt.projectName,
24-
packageManager: prompt.packageManager,
24+
packageManager: prompt.packageManager ? prompt.packageManager : "npm",
2525
reactNativeVersion:
2626
prompt.reactNativeVersion === "custom"
2727
? prompt.customReactNativeVersion
28-
: prompt.reactNativeVersion,
28+
: prompt.reactNativeVersion || "latest",
2929
srcDir: prompt.srcDir,
3030
nativeWind: prompt.installNativeWind,
31-
envEnabled: prompt.envEnabled,
31+
envEnabled: prompt.envEnabled ? prompt.envEnabled : false,
3232
envPackage: prompt.envPackage ? prompt.envPackage : "react-native-config",
33-
includeCustomHooks: prompt.includeCustomHooks,
34-
customHooks: prompt.selectedHooks,
35-
includeConsoleRemover: prompt.includeConsoleRemover,
33+
includeCustomHooks: prompt.includeCustomHooks
34+
? prompt.includeCustomHooks
35+
: false,
36+
customHooks: prompt.selectedHooks ? prompt.selectedHooks : [],
37+
includeConsoleRemover: prompt.includeConsoleRemover
38+
? prompt.includeConsoleRemover
39+
: false,
3640
template: prompt.template,
3741
disableGit: prompt.disableGit,
3842
skipInstall: false,

src/prompts.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,9 @@ const questions = [
3131
message: "What is the name of your React Native project?",
3232
default: "MyReactNativeApp",
3333
validate: (input: string) =>
34-
/^[a-zA-Z_-]+$/.test(input) ||
34+
/^[a-zA-Z0-9_]+$/.test(input) ||
3535
"Project name can only contain letters, underscores, and hyphens.",
3636
},
37-
{
38-
type: "list",
39-
name: "packageManager",
40-
message: "Which package manager would you like to use?",
41-
choices: ["npm", "yarn", "bun"],
42-
},
4337
{
4438
type: "confirm",
4539
name: "srcDir",
@@ -77,11 +71,25 @@ const questions = [
7771
choices: ["react-native-config", "react-native-dotenv"],
7872
when: (answers: Answers) => answers.envEnabled,
7973
},
74+
{
75+
type: "confirm",
76+
name: "enableAdditionalCustomization",
77+
message: "Would you like to enable additional customization?",
78+
default: false,
79+
},
80+
{
81+
type: "list",
82+
name: "packageManager",
83+
message: "Which package manager would you like to use?",
84+
choices: ["npm", "yarn", "bun"],
85+
when: (answers: Answers) => answers.enableAdditionalCustomization,
86+
},
8087
{
8188
type: "confirm",
8289
name: "includeCustomHooks",
8390
message: "Would you like to include custom hooks in your project?",
8491
default: false,
92+
when: (answers: Answers) => answers.enableAdditionalCustomization,
8593
},
8694
{
8795
type: "checkbox",
@@ -94,14 +102,16 @@ const questions = [
94102
{ name: "useOrientation", value: "useOrientation" },
95103
{ name: "useResponsiveLayout", value: "useResponsiveLayout" },
96104
],
97-
when: (answers: Answers) => answers.includeCustomHooks,
105+
when: (answers: Answers) =>
106+
answers.includeCustomHooks && answers.enableAdditionalCustomization,
98107
},
99108
{
100109
type: "confirm",
101110
name: "includeConsoleRemover",
102111
message:
103112
"Would you like to include automatic console log removal for production builds?",
104113
default: false,
114+
when: (answers: Answers) => answers.enableAdditionalCustomization,
105115
},
106116
{
107117
type: "list",
@@ -114,12 +124,15 @@ const questions = [
114124
{ name: "Custom", value: "custom" },
115125
],
116126
default: "latest",
127+
when: (answers: Answers) => answers.enableAdditionalCustomization,
117128
},
118129
{
119130
type: "input",
120131
name: "customReactNativeVersion",
121132
message: "Please enter the React Native version you would like to use:",
122-
when: (answers: Answers) => answers.reactNativeVersion === "custom",
133+
when: (answers: Answers) =>
134+
answers.reactNativeVersion === "custom" &&
135+
answers.enableAdditionalCustomization,
123136
validate: (input: string) =>
124137
/^\d+\.\d+\.\d+$/.test(input) || "Please enter a valid version number.",
125138
},

src/templates/project/bottom-navigation/nativewind/App-src.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { SafeAreaView, StatusBar } from "react-native";
55
import { NavigationContainer } from "@react-navigation/native";
66
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
77

8-
import HomeScreen from "./src/srceens/HomeScreen";
8+
import HomeScreen from "./src/screens/HomeScreen";
99
import AboutScreen from "./src/screens/AboutScreen";
1010

1111
const Tab = createBottomTabNavigator();

0 commit comments

Comments
 (0)