@@ -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 - z A - Z _ - ] + $ / . test ( input ) ||
34+ / ^ [ a - z A - Z 0 - 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 } ,
0 commit comments