nx-react-native-cli 2.3.0 → 2.4.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 (173) hide show
  1. package/README.md +5 -5
  2. package/lib/index.cjs +33 -33
  3. package/package.json +4 -3
  4. package/templates/19.7.0/apps/mobile/.ignorefile +147 -0
  5. package/templates/21.2.2/.eslintrc.json +288 -0
  6. package/templates/21.2.2/.prettierignore +9 -0
  7. package/templates/21.2.2/.prettierrc +13 -0
  8. package/templates/21.2.2/.ruby-version +1 -0
  9. package/templates/21.2.2/apps/mobile/.eslintrc.json +38 -0
  10. package/templates/21.2.2/apps/mobile/.ignorefile +147 -0
  11. package/templates/21.2.2/apps/mobile/Gemfile +20 -0
  12. package/templates/21.2.2/apps/mobile/android/app/build.gradle +159 -0
  13. package/templates/21.2.2/apps/mobile/android/app/src/dev/res/values/strings.xml +3 -0
  14. package/templates/21.2.2/apps/mobile/android/app/src/main/java/com/mobile/MainActivity.kt +28 -0
  15. package/templates/21.2.2/apps/mobile/android/app/src/main/java/com/mobile/MainApplication.kt +44 -0
  16. package/templates/21.2.2/apps/mobile/android/app/src/production/res/values/strings.xml +3 -0
  17. package/templates/21.2.2/apps/mobile/android/settings.gradle +6 -0
  18. package/templates/21.2.2/apps/mobile/ios/Mobile/AppDelegate.mm +53 -0
  19. package/templates/21.2.2/apps/mobile/jest.config.ts +12 -0
  20. package/templates/21.2.2/apps/mobile/metro.config.js +42 -0
  21. package/templates/21.2.2/apps/mobile/project.json +107 -0
  22. package/templates/21.2.2/apps/mobile/src/main.tsx +5 -0
  23. package/templates/21.2.2/apps/mobile/test-setup.ts +1 -0
  24. package/templates/21.2.2/apps/mobile/tsconfig.app.json +34 -0
  25. package/templates/shared/apps/mobile/.env.template +3 -0
  26. package/templates/{apps → shared/apps}/mobile/src/components/atoms/KeyboardAccessory/keyboard-accessory.component.tsx +2 -2
  27. package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/bottom-sheet-text-input.component.tsx +9 -8
  28. package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/text-input-area.component.tsx +4 -2
  29. package/templates/{.eslintrc.json → 19.7.0/.eslintrc.json} +0 -0
  30. package/templates/{.prettierignore → 19.7.0/.prettierignore} +0 -0
  31. package/templates/{.prettierrc → 19.7.0/.prettierrc} +0 -0
  32. package/templates/{.ruby-version → 19.7.0/.ruby-version} +0 -0
  33. package/templates/{apps → 19.7.0/apps}/mobile/.eslintrc.json +0 -0
  34. package/templates/{apps → 19.7.0/apps}/mobile/Gemfile +0 -0
  35. package/templates/{apps → 19.7.0/apps}/mobile/android/app/build.gradle +0 -0
  36. package/templates/{apps → 19.7.0/apps}/mobile/android/app/src/dev/res/values/strings.xml +0 -0
  37. package/templates/{apps → 19.7.0/apps}/mobile/android/app/src/main/java/com/appsmobile/MainActivity.kt +0 -0
  38. package/templates/{apps → 19.7.0/apps}/mobile/android/app/src/main/java/com/appsmobile/MainApplication.kt +0 -0
  39. package/templates/{apps → 19.7.0/apps}/mobile/android/app/src/production/res/values/strings.xml +0 -0
  40. package/templates/{apps → 19.7.0/apps}/mobile/android/settings.gradle +0 -0
  41. package/templates/{apps → 19.7.0/apps}/mobile/ios/AppsMobile/AppDelegate.mm +0 -0
  42. package/templates/{apps → 19.7.0/apps}/mobile/jest.config.ts +0 -0
  43. package/templates/{apps → 19.7.0/apps}/mobile/metro.config.js +0 -0
  44. package/templates/{apps → 19.7.0/apps}/mobile/project.json +0 -0
  45. package/templates/{apps → 19.7.0/apps}/mobile/src/main.tsx +0 -0
  46. package/templates/{apps → 19.7.0/apps}/mobile/test-setup.ts +0 -0
  47. package/templates/{apps → 19.7.0/apps}/mobile/tsconfig.app.json +0 -0
  48. package/templates/{apps → 19.7.0/apps}/mobile/tsconfig.spec.json +0 -0
  49. package/templates/{.husky → shared/.husky}/pre-commit +0 -0
  50. package/templates/{.husky → shared/.husky}/pre-push +0 -0
  51. package/templates/{.ignorefile → shared/.ignorefile} +0 -0
  52. package/templates/{.nvmrc → shared/.nvmrc} +0 -0
  53. package/templates/{.vscode → shared/.vscode}/extensions.json +0 -0
  54. package/templates/{.vscode → shared/.vscode}/settings.json +0 -0
  55. package/templates/{apps/mobile/.env.template → shared/apps/mobile/.env} +0 -0
  56. package/templates/{apps → shared/apps}/mobile/android/app/proguard-rules.pro +0 -0
  57. package/templates/{apps → shared/apps}/mobile/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -0
  58. package/templates/{apps → shared/apps}/mobile/android/build.gradle +0 -0
  59. package/templates/{apps → shared/apps}/mobile/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  60. package/templates/{apps → shared/apps}/mobile/android/gradle/wrapper/gradle-wrapper.properties +0 -0
  61. package/templates/{apps → shared/apps}/mobile/android/gradle.properties +0 -0
  62. package/templates/{apps → shared/apps}/mobile/android/gradlew +0 -0
  63. package/templates/{apps → shared/apps}/mobile/android/gradlew.bat +0 -0
  64. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterBlack.ttf +0 -0
  65. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterBlackItalic.ttf +0 -0
  66. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterBold.ttf +0 -0
  67. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterBoldItalic.ttf +0 -0
  68. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterExtraBold.ttf +0 -0
  69. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterExtraBoldItalic.ttf +0 -0
  70. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterExtraLight.ttf +0 -0
  71. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterExtraLightItalic.ttf +0 -0
  72. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterItalic.ttf +0 -0
  73. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterLight.ttf +0 -0
  74. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterLightItalic.ttf +0 -0
  75. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterMedium.ttf +0 -0
  76. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterMediumItalic.ttf +0 -0
  77. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterRegular.ttf +0 -0
  78. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterSemiBold.ttf +0 -0
  79. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterSemiBoldItalic.ttf +0 -0
  80. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterThin.ttf +0 -0
  81. package/templates/{apps → shared/apps}/mobile/assets/fonts/InterThinItalic.ttf +0 -0
  82. package/templates/{apps → shared/apps}/mobile/babel.config.json +0 -0
  83. package/templates/{apps → shared/apps}/mobile/export-node-binary.sh +0 -0
  84. package/templates/{apps → shared/apps}/mobile/fastlane/.env.template +0 -0
  85. package/templates/{apps → shared/apps}/mobile/fastlane/Fastfile +0 -0
  86. package/templates/{apps → shared/apps}/mobile/fastlane/Matchfile +0 -0
  87. package/templates/{apps → shared/apps}/mobile/fastlane/Pluginfile +0 -0
  88. package/templates/{apps → shared/apps}/mobile/fastlane/README.md +0 -0
  89. package/templates/{apps → shared/apps}/mobile/package.json +0 -0
  90. package/templates/{apps → shared/apps}/mobile/react-native.config.js +0 -0
  91. package/templates/{apps → shared/apps}/mobile/src/app/index.tsx +0 -0
  92. package/templates/{apps → shared/apps}/mobile/src/assets/images/.gitkeep +0 -0
  93. package/templates/{apps → shared/apps}/mobile/src/components/atoms/BottomSheet/bottom-sheet.component.tsx +0 -0
  94. package/templates/{apps → shared/apps}/mobile/src/components/atoms/BottomSheet/index.ts +0 -0
  95. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Button/button.component.tsx +0 -0
  96. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Button/index.ts +0 -0
  97. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Divider/divider-component.tsx +0 -0
  98. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Divider/index.ts +0 -0
  99. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ExcludedEdges/excluded-edges.component.tsx +0 -0
  100. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ExcludedEdges/index.ts +0 -0
  101. package/templates/{apps → shared/apps}/mobile/src/components/atoms/InputLayout/index.ts +0 -0
  102. package/templates/{apps → shared/apps}/mobile/src/components/atoms/InputLayout/input-layout.component.tsx +0 -0
  103. package/templates/{apps → shared/apps}/mobile/src/components/atoms/KeyboardAccessory/index.ts +0 -0
  104. package/templates/{apps → shared/apps}/mobile/src/components/atoms/KeyboardAwareScrollView/index.ts +0 -0
  105. package/templates/{apps → shared/apps}/mobile/src/components/atoms/KeyboardAwareScrollView/keyboard-aware-scroll-view.component.tsx +0 -0
  106. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ListLoadingItem/index.ts +0 -0
  107. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ListLoadingItem/list-loading-item.component.tsx +0 -0
  108. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Modal/index.ts +0 -0
  109. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Modal/modal.component.tsx +0 -0
  110. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ScreenLoader/index.ts +0 -0
  111. package/templates/{apps → shared/apps}/mobile/src/components/atoms/ScreenLoader/screen-loader.component.tsx +0 -0
  112. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Skeleton/index.ts +0 -0
  113. package/templates/{apps → shared/apps}/mobile/src/components/atoms/Skeleton/skeleton.component.tsx +0 -0
  114. package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/constants.ts +6 -6
  115. package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/index.ts +0 -0
  116. package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/text-input.component.tsx +1 -1
  117. /package/templates/{apps → shared/apps}/mobile/src/components/atoms/TextInput/util.ts +0 -0
  118. /package/templates/{apps → shared/apps}/mobile/src/components/atoms/Typography/index.ts +0 -0
  119. /package/templates/{apps → shared/apps}/mobile/src/components/atoms/Typography/typography.component.tsx +0 -0
  120. /package/templates/{apps → shared/apps}/mobile/src/components/atoms/index.ts +0 -0
  121. /package/templates/{apps → shared/apps}/mobile/src/components/index.ts +0 -0
  122. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/BackButton/back-button.component.tsx +0 -0
  123. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/BackButton/index.ts +0 -0
  124. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/BottomActionsContainer/BottomActionsContainer.component.tsx +0 -0
  125. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/BottomActionsContainer/index.ts +0 -0
  126. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/ScreenContainer/index.ts +0 -0
  127. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/ScreenContainer/screen-container.component.tsx +0 -0
  128. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/ScreenHeader/index.ts +0 -0
  129. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/ScreenHeader/screen-header.component.tsx +0 -0
  130. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/StorageManager/StorageManager.component.tsx +0 -0
  131. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/StorageManager/index.ts +0 -0
  132. /package/templates/{apps → shared/apps}/mobile/src/components/molecules/index.ts +0 -0
  133. /package/templates/{apps → shared/apps}/mobile/src/components/organisms/index.ts +0 -0
  134. /package/templates/{apps → shared/apps}/mobile/src/config/index.ts +0 -0
  135. /package/templates/{apps → shared/apps}/mobile/src/dimens/index.ts +0 -0
  136. /package/templates/{apps → shared/apps}/mobile/src/env.d.ts +0 -0
  137. /package/templates/{apps → shared/apps}/mobile/src/hooks/index.ts +0 -0
  138. /package/templates/{apps → shared/apps}/mobile/src/hooks/useAppState.hook.tsx +0 -0
  139. /package/templates/{apps → shared/apps}/mobile/src/hooks/useApplicationDimensions.hook.tsx +0 -0
  140. /package/templates/{apps → shared/apps}/mobile/src/hooks/useDebounce.hook.ts +0 -0
  141. /package/templates/{apps → shared/apps}/mobile/src/hooks/useGetLayoutHeight.hook.tsx +0 -0
  142. /package/templates/{apps → shared/apps}/mobile/src/hooks/useGetLayoutWidth.hook.tsx +0 -0
  143. /package/templates/{apps → shared/apps}/mobile/src/hooks/useNavigation.hook.tsx +0 -0
  144. /package/templates/{apps → shared/apps}/mobile/src/hooks/useShakeAnimation.hook.tsx +0 -0
  145. /package/templates/{apps → shared/apps}/mobile/src/hooks/useTextInputChangeFocus.hook.tsx +0 -0
  146. /package/templates/{apps → shared/apps}/mobile/src/hooks/useThrottle.hook.ts +0 -0
  147. /package/templates/{apps → shared/apps}/mobile/src/hooks/useToggleDarkMode.hook.tsx +0 -0
  148. /package/templates/{apps → shared/apps}/mobile/src/icons/arrow-left.svg +0 -0
  149. /package/templates/{apps → shared/apps}/mobile/src/icons/cross.svg +0 -0
  150. /package/templates/{apps → shared/apps}/mobile/src/icons/gear.svg +0 -0
  151. /package/templates/{apps → shared/apps}/mobile/src/icons/index.ts +0 -0
  152. /package/templates/{apps → shared/apps}/mobile/src/icons/keyboard-hide.svg +0 -0
  153. /package/templates/{apps → shared/apps}/mobile/src/routes/index.tsx +0 -0
  154. /package/templates/{apps → shared/apps}/mobile/src/routes/privateRoutes.tsx +0 -0
  155. /package/templates/{apps → shared/apps}/mobile/src/routes/publicRoutes.tsx +0 -0
  156. /package/templates/{apps → shared/apps}/mobile/src/routes/routes.enum.ts +0 -0
  157. /package/templates/{apps → shared/apps}/mobile/src/routes/screen-options.ts +0 -0
  158. /package/templates/{apps → shared/apps}/mobile/src/routes/screens.enum.ts +0 -0
  159. /package/templates/{apps → shared/apps}/mobile/src/screens/HomeScreen/home.screen.tsx +0 -0
  160. /package/templates/{apps → shared/apps}/mobile/src/screens/LandingScreen/landing.screen.tsx +0 -0
  161. /package/templates/{apps → shared/apps}/mobile/src/stores/index.ts +0 -0
  162. /package/templates/{apps → shared/apps}/mobile/src/stores/local-storage.store.ts +0 -0
  163. /package/templates/{apps → shared/apps}/mobile/src/stores/mmkvStorage.ts +0 -0
  164. /package/templates/{apps → shared/apps}/mobile/src/tailwind/index.ts +0 -0
  165. /package/templates/{apps → shared/apps}/mobile/src/types/component.type.ts +0 -0
  166. /package/templates/{apps → shared/apps}/mobile/src/types/index.ts +0 -0
  167. /package/templates/{apps → shared/apps}/mobile/src/utils/axios.util.ts +0 -0
  168. /package/templates/{apps → shared/apps}/mobile/src/utils/index.ts +0 -0
  169. /package/templates/{apps → shared/apps}/mobile/src/utils/log.util.ts +0 -0
  170. /package/templates/{apps → shared/apps}/mobile/src/utils/route.util.ts +0 -0
  171. /package/templates/{apps → shared/apps}/mobile/tailwind.config.js +0 -0
  172. /package/templates/{check-env.sh → shared/check-env.sh} +0 -0
  173. /package/templates/{clean-generated-outputs.sh → shared/clean-generated-outputs.sh} +0 -0
@@ -0,0 +1,159 @@
1
+ apply plugin: "com.android.application"
2
+ apply plugin: "org.jetbrains.kotlin.android"
3
+ apply plugin: "com.facebook.react"
4
+
5
+ /**
6
+ * This is the configuration block to customize your React Native Android app.
7
+ * By default you don't need to apply any configuration, just uncomment the lines you need.
8
+ */
9
+ react {
10
+ /* Folders */
11
+ // The root of your project, i.e. where "package.json" lives. Default is '..'
12
+ // root = file("../")
13
+ // The folder where the react-native NPM package is. Default is ../../../../node_modules/react-native
14
+ reactNativeDir = file("../../../../node_modules/react-native")
15
+ // The folder where the react-native Codegen package is. Default is ../../../../node_modules/@react-native/codegen
16
+ codegenDir = file("../../../../node_modules/@react-native/codegen")
17
+ // The cli.js file which is the React Native CLI entrypoint. Default is ../../../../node_modules/react-native/cli.js
18
+ cliFile = file("../../../../node_modules/react-native/cli.js")
19
+
20
+ /* Variants */
21
+ // The list of variants to that are debuggable. For those we're going to
22
+ // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
23
+ // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
24
+ // debuggableVariants = ["liteDebug", "prodDebug"]
25
+
26
+ /* Bundling */
27
+ // A list containing the node command and its flags. Default is just 'node'.
28
+ // nodeExecutableAndArgs = ["node"]
29
+ //
30
+ // The command to run when bundling. By default is 'bundle'
31
+ // bundleCommand = "ram-bundle"
32
+ //
33
+ // The path to the CLI configuration file. Default is empty.
34
+ // bundleConfig = file(../rn-cli.config.js)
35
+ //
36
+ // The name of the generated asset file containing your JS bundle
37
+ // bundleAssetName = "MyApplication.android.bundle"
38
+ //
39
+ // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
40
+ entryFile = file("../../src/main.tsx")
41
+ //
42
+ // A list of extra flags to pass to the 'bundle' commands.
43
+ // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
44
+ // extraPackagerArgs = []
45
+
46
+ /* Hermes Commands */
47
+ // The hermes compiler command to run. By default it is 'hermesc'
48
+ // hermesCommand = "../../../../node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc"
49
+ //
50
+ // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
51
+ // hermesFlags = ["-O", "-output-source-map"]
52
+
53
+ /* Autolinking */
54
+ autolinkLibrariesWithApp()
55
+ }
56
+
57
+ /**
58
+ * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
59
+ */
60
+ def enableProguardInReleaseBuilds = false
61
+
62
+ /**
63
+ * The preferred build flavor of JavaScriptCore (JSC)
64
+ *
65
+ * For example, to use the international variant, you can use:
66
+ * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
67
+ *
68
+ * The international variant includes ICU i18n library and necessary data
69
+ * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
70
+ * give correct results when using with locales other than en-US. Note that
71
+ * this variant is about 6MiB larger per architecture than default.
72
+ */
73
+ def jscFlavor = 'org.webkit:android-jsc:+'
74
+
75
+ android {
76
+ ndkVersion rootProject.ext.ndkVersion
77
+ buildToolsVersion rootProject.ext.buildToolsVersion
78
+ compileSdk rootProject.ext.compileSdkVersion
79
+ namespace "com.mobile"
80
+ flavorDimensions "default"
81
+
82
+ defaultConfig {
83
+ applicationId "com.mobile"
84
+ minSdkVersion rootProject.ext.minSdkVersion
85
+ targetSdkVersion rootProject.ext.targetSdkVersion
86
+ versionCode 1
87
+ versionName "1.0"
88
+
89
+ testBuildType System.getProperty('testBuildType', 'debug')
90
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
91
+
92
+ }
93
+ signingConfigs {
94
+ debug {
95
+ storeFile file('dev.keystore')
96
+ storePassword 'development'
97
+ keyAlias 'dev'
98
+ keyPassword 'development'
99
+ v1SigningEnabled true
100
+ v2SigningEnabled true
101
+ }
102
+ dev {
103
+ storeFile file('dev.keystore')
104
+ storePassword 'development'
105
+ keyAlias 'dev'
106
+ keyPassword 'development'
107
+ v1SigningEnabled true
108
+ v2SigningEnabled true
109
+ }
110
+ production {
111
+ storeFile file('production.keystore')
112
+ storePassword System.getenv("STORE_PASSWORD")
113
+ keyAlias System.getenv("KEY_ALIAS")
114
+ keyPassword System.getenv("KEY_PASSWORD")
115
+ v1SigningEnabled true
116
+ v2SigningEnabled true
117
+ }
118
+ }
119
+
120
+ productFlavors {
121
+ dev {
122
+ minSdkVersion rootProject.ext.minSdkVersion
123
+ applicationId "com.mobile"
124
+ applicationIdSuffix ".dev"
125
+ targetSdkVersion rootProject.ext.targetSdkVersion
126
+ resValue "string", "build_config_package", "com.mobile.dev"
127
+ signingConfig signingConfigs.dev
128
+ }
129
+ production {
130
+ minSdkVersion rootProject.ext.minSdkVersion
131
+ applicationId "com.mobile"
132
+ targetSdkVersion rootProject.ext.targetSdkVersion
133
+ resValue "string", "build_config_package", "com.mobile"
134
+ signingConfig signingConfigs.production
135
+ }
136
+ }
137
+
138
+ buildTypes {
139
+ debug {
140
+ }
141
+ release {
142
+ // Caution! In production, you need to generate your own keystore file.
143
+ // see https://reactnative.dev/docs/signed-apk-android.
144
+ minifyEnabled enableProguardInReleaseBuilds
145
+ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
146
+ }
147
+ }
148
+ }
149
+
150
+ dependencies {
151
+ // The version of react-native is set by the React Native Gradle Plugin
152
+ implementation("com.facebook.react:react-android")
153
+
154
+ if (hermesEnabled.toBoolean()) {
155
+ implementation("com.facebook.react:hermes-android")
156
+ } else {
157
+ implementation jscFlavor
158
+ }
159
+ }
@@ -0,0 +1,3 @@
1
+ <resources>
2
+ <string name="app_name">Mobile - Dev</string>
3
+ </resources>
@@ -0,0 +1,28 @@
1
+ package com.mobile
2
+
3
+ import com.facebook.react.ReactActivity
4
+ import com.facebook.react.ReactActivityDelegate
5
+ import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
6
+ import com.facebook.react.defaults.DefaultReactActivityDelegate
7
+ import android.os.Bundle;
8
+
9
+ class MainActivity : ReactActivity() {
10
+
11
+ /**
12
+ * Returns the name of the main component registered from JavaScript. This is used to schedule
13
+ * rendering of the component.
14
+ */
15
+ override fun getMainComponentName(): String = "Mobile"
16
+
17
+ //react-native-screens override
18
+ override fun onCreate(savedInstanceState: Bundle?) {
19
+ super.onCreate(null);
20
+ }
21
+
22
+ /**
23
+ * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
24
+ * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
25
+ */
26
+ override fun createReactActivityDelegate(): ReactActivityDelegate =
27
+ DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
28
+ }
@@ -0,0 +1,44 @@
1
+ package com.mobile
2
+
3
+ import android.app.Application
4
+ import com.facebook.react.PackageList
5
+ import com.facebook.react.ReactApplication
6
+ import com.facebook.react.ReactHost
7
+ import com.facebook.react.ReactNativeHost
8
+ import com.facebook.react.ReactPackage
9
+ import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
10
+ import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
11
+ import com.facebook.react.defaults.DefaultReactNativeHost
12
+ import com.facebook.react.soloader.OpenSourceMergedSoMapping
13
+ import com.facebook.soloader.SoLoader
14
+
15
+ class MainApplication : Application(), ReactApplication {
16
+
17
+ override val reactNativeHost: ReactNativeHost =
18
+ object : DefaultReactNativeHost(this) {
19
+ override fun getPackages(): List<ReactPackage> {
20
+ // Packages that cannot be autolinked yet can be added manually here, for example:
21
+ // packages.add(new MyReactNativePackage());
22
+ return PackageList(this).packages
23
+ }
24
+
25
+ override fun getJSMainModuleName(): String = "src/main"
26
+
27
+ override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
28
+
29
+ override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
30
+ override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
31
+ }
32
+
33
+ override val reactHost: ReactHost
34
+ get() = getDefaultReactHost(applicationContext, reactNativeHost)
35
+
36
+ override fun onCreate() {
37
+ super.onCreate()
38
+ SoLoader.init(this, OpenSourceMergedSoMapping)
39
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
40
+ // If you opted-in for the New Architecture, we load the native entry point for this app.
41
+ load()
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,3 @@
1
+ <resources>
2
+ <string name="app_name">Mobile</string>
3
+ </resources>
@@ -0,0 +1,6 @@
1
+ pluginManagement { includeBuild("../../../node_modules/@react-native/gradle-plugin") }
2
+ plugins { id("com.facebook.react.settings") }
3
+ extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
4
+ rootProject.name = 'Mobile'
5
+ include ':app'
6
+ includeBuild('../../../node_modules/@react-native/gradle-plugin')
@@ -0,0 +1,53 @@
1
+ #import "AppDelegate.h"
2
+
3
+ #import <React/RCTBundleURLProvider.h>
4
+ #import <ReactAppDependencyProvider/RCTAppDependencyProvider.h>
5
+
6
+ #import <RCTDefaultReactNativeFactoryDelegate.h>
7
+ #import <RCTReactNativeFactory.h>
8
+
9
+ @interface ReactNativeDelegate : RCTDefaultReactNativeFactoryDelegate
10
+ @end
11
+
12
+ @implementation ReactNativeDelegate
13
+
14
+ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
15
+ return [self bundleURL];
16
+ }
17
+
18
+ - (NSURL *)bundleURL {
19
+ #if DEBUG
20
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"src/main"];
21
+ #else
22
+ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
23
+ #endif
24
+ }
25
+
26
+ @end
27
+
28
+ @interface AppDelegate ()
29
+ @property (nonatomic, strong) ReactNativeDelegate *reactNativeDelegate;
30
+ @property (nonatomic, strong) RCTReactNativeFactory *reactNativeFactory;
31
+ @end
32
+
33
+ @implementation AppDelegate
34
+
35
+ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
36
+ {
37
+ ReactNativeDelegate *delegate = [ReactNativeDelegate new];
38
+ RCTReactNativeFactory *factory = [[RCTReactNativeFactory alloc] initWithDelegate:delegate];
39
+ delegate.dependencyProvider = [RCTAppDependencyProvider new];
40
+
41
+ self.reactNativeDelegate = delegate;
42
+ self.reactNativeFactory = factory;
43
+
44
+ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
45
+
46
+ [factory startReactNativeWithModuleName:@"Mobile"
47
+ inWindow:self.window
48
+ launchOptions:launchOptions];
49
+
50
+ return YES;
51
+ }
52
+
53
+ @end
@@ -0,0 +1,12 @@
1
+ module.exports = {
2
+ displayName: 'mobile',
3
+ preset: 'react-native',
4
+ resolver: '@nx/jest/plugins/resolver',
5
+ moduleFileExtensions: ['ts', 'js', 'html', 'tsx', 'jsx'],
6
+ setupFilesAfterEnv: ['<rootDir>/test-setup.ts'],
7
+ moduleNameMapper: {
8
+ '\\.svg$': '@nx/react-native/plugins/jest/svg-mock',
9
+ },
10
+ coverageDirectory: '../../coverage/apps/mobile',
11
+ };
12
+
@@ -0,0 +1,42 @@
1
+ const path = require('path');
2
+ const { withNxMetro } = require('@nx/react-native');
3
+ const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
4
+
5
+ const defaultConfig = getDefaultConfig(__dirname);
6
+ const { assetExts, sourceExts } = defaultConfig.resolver;
7
+
8
+ /**
9
+ * Metro configuration
10
+ * https://reactnative.dev/docs/metro
11
+ *
12
+ * @type {import('metro-config').MetroConfig}
13
+ */
14
+ const customConfig = {
15
+ cacheVersion: 'mobile',
16
+ transformer: {
17
+ babelTransformerPath: require.resolve('react-native-svg-transformer'),
18
+ getTransformOptions: async () => ({
19
+ transform: {
20
+ experimentalImportSupport: false,
21
+ inlineRequires: true,
22
+ },
23
+ }),
24
+ },
25
+ resolver: {
26
+ extraNodeModules: {
27
+ '@': path.resolve(__dirname, 'src'),
28
+ },
29
+ assetExts: assetExts.filter((ext) => ext !== 'svg'),
30
+ sourceExts: [...sourceExts, 'cjs', 'mjs', 'svg'],
31
+ },
32
+ };
33
+
34
+ module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), {
35
+ // Change this to true to see debugging info.
36
+ // Useful if you have issues resolving modules
37
+ debug: false,
38
+ // all the file extensions used for imports other than 'ts', 'tsx', 'js', 'jsx', 'json'
39
+ extensions: [],
40
+ // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules)
41
+ watchFolders: [],
42
+ });
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "mobile",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "apps/mobile/src",
5
+ "projectType": "application",
6
+ "tags": [],
7
+ "// targets": "to see all targets run: nx show project mobile --web",
8
+ "targets": {
9
+ "check-env": {
10
+ "executor": "nx:run-script",
11
+ "options": {
12
+ "script": "check-env:mobile"
13
+ }
14
+ },
15
+ "start": {
16
+ "executor": "@nx/react-native:start",
17
+ "dependsOn": ["check-env", "ensure-symlink", "pod-install"],
18
+ "options": {
19
+ "port": 8081,
20
+ "resetCache": true,
21
+ "client-logs": true
22
+ }
23
+ },
24
+ "serve": {
25
+ "executor": "nx:run-commands",
26
+ "options": {
27
+ "command": "nx start mobile"
28
+ }
29
+ },
30
+ "run-ios": {
31
+ "executor": "@nx/react-native:run-ios",
32
+ "dependsOn": ["ensure-symlink", "pod-install"],
33
+ "options": {}
34
+ },
35
+ "bundle-ios": {
36
+ "executor": "@nx/react-native:bundle",
37
+ "dependsOn": ["ensure-symlink"],
38
+ "outputs": ["{options.bundleOutput}"],
39
+ "options": {
40
+ "entryFile": "src/main.tsx",
41
+ "platform": "ios",
42
+ "bundleOutput": "dist/apps/mobile/ios/main.jsbundle"
43
+ }
44
+ },
45
+ "run-android": {
46
+ "executor": "@nx/react-native:run-android",
47
+ "dependsOn": ["ensure-symlink"],
48
+ "options": {
49
+ "mode": "debug",
50
+ "tasks": "installDevDebug"
51
+ }
52
+ },
53
+ "build-android": {
54
+ "executor": "@nx/react-native:build-android",
55
+ "outputs": [
56
+ "{projectRoot}/android/app/build/outputs/bundle",
57
+ "{projectRoot}/android/app/build/outputs/apk"
58
+ ],
59
+ "dependsOn": ["ensure-symlink"],
60
+ "options": {}
61
+ },
62
+ "build-ios": {
63
+ "executor": "@nx/react-native:build-ios",
64
+ "outputs": ["{projectRoot}/ios/build/Build"],
65
+ "dependsOn": ["ensure-symlink", "pod-install"],
66
+ "options": {}
67
+ },
68
+ "pod-install": {
69
+ "executor": "nx:run-script",
70
+ "options": {
71
+ "script": "bundle:pod-install"
72
+ }
73
+ },
74
+ "bundle-android": {
75
+ "executor": "@nx/react-native:bundle",
76
+ "dependsOn": ["ensure-symlink"],
77
+ "outputs": ["{options.bundleOutput}"],
78
+ "options": {
79
+ "entryFile": "src/main.tsx",
80
+ "platform": "android",
81
+ "bundleOutput": "dist/apps/mobile/android/main.jsbundle"
82
+ }
83
+ },
84
+ "sync-deps": {
85
+ "executor": "@nx/react-native:sync-deps",
86
+ "options": {}
87
+ },
88
+ "ensure-symlink": {
89
+ "executor": "@nx/react-native:ensure-symlink",
90
+ "options": {}
91
+ },
92
+ "lint": {
93
+ "executor": "@nx/eslint:lint",
94
+ "outputs": ["{options.outputFile}"],
95
+ "options": {
96
+ "lintFilePatterns": ["apps/mobile/**/*.{ts,tsx,js,jsx}"]
97
+ }
98
+ },
99
+ "test": {
100
+ "executor": "@nx/jest:jest",
101
+ "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
102
+ "options": {
103
+ "jestConfig": "apps/mobile/jest.config.ts"
104
+ }
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,5 @@
1
+ import { AppRegistry } from 'react-native';
2
+
3
+ import App from '@/app';
4
+
5
+ AppRegistry.registerComponent('Mobile', () => App);
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-native/extend-expect';
@@ -0,0 +1,34 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../dist/out-tsc",
5
+ "types": ["node", "jest"],
6
+ "strict": true,
7
+ "baseUrl": ".",
8
+ "paths": {
9
+ "@/*": ["src/*"]
10
+ }
11
+ },
12
+ "files": ["../../node_modules/@nx/react-native/typings/svg.d.ts"],
13
+ "exclude": [
14
+ "jest.config.ts",
15
+ "src/**/*.spec.ts",
16
+ "src/**/*.spec.tsx",
17
+ "**/testHelpers",
18
+ "**/__mocks__",
19
+ "**/__fixtures__",
20
+ "**/node_modules",
21
+ "**/Pods",
22
+ "test-setup.ts",
23
+ "src/**/*.test.ts",
24
+ "src/**/*.spec.ts",
25
+ "src/**/*.test.tsx",
26
+ "src/**/*.spec.tsx",
27
+ "src/**/*.test.js",
28
+ "src/**/*.spec.js",
29
+ "src/**/*.test.jsx",
30
+ "src/**/*.spec.jsx",
31
+ "src/test-setup.ts"
32
+ ],
33
+ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"]
34
+ }
@@ -0,0 +1,3 @@
1
+ IS_LIVE=false
2
+ STORAGE_KEY=MMKV-STORAGE-KEY
3
+ API_BASE_URL=
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  import { InputAccessoryView, Keyboard, View } from 'react-native';
3
3
 
4
4
  import { Button } from '@/components/atoms/Button';
5
+ import { KeyboardHideIcon } from '@/icons';
5
6
  import { tw } from '@/tailwind';
6
7
  import { DefaultComponentProps } from '@/types/component.type';
7
- import { KeyboardHideIcon } from '@/icons';
8
8
 
9
9
  type Props = DefaultComponentProps & {
10
10
  nativeID: string;
@@ -16,7 +16,7 @@ export function KeyboardAccessory(props: Props) {
16
16
  return (
17
17
  <InputAccessoryView nativeID={nativeID}>
18
18
  <View style={tw`flex-row items-center justify-end bg-[#313132] px-2`}>
19
- <Button onPress={() => Keyboard.dismiss()} buttonStyle={tw`my-2 rounded-lg bg-[#717172]`}>
19
+ <Button buttonStyle={tw`my-2 rounded-lg bg-[#717172]`} onPress={() => Keyboard.dismiss()}>
20
20
  <KeyboardHideIcon style={tw`text-white`} />
21
21
  </Button>
22
22
  </View>
@@ -11,6 +11,8 @@ import {
11
11
  View,
12
12
  } from 'react-native';
13
13
 
14
+ import { DefaultNameInputProps } from './constants';
15
+
14
16
  import { CrossIcon } from '@/icons';
15
17
  import {
16
18
  colors,
@@ -21,7 +23,6 @@ import {
21
23
  tw,
22
24
  } from '@/tailwind';
23
25
  import { DefaultComponentProps } from '@/types/component.type';
24
- import { DefaultNameInputProps } from './constants';
25
26
 
26
27
  export type BottomSheetTextInputProps = DefaultComponentProps &
27
28
  RNTextInputProps & {
@@ -35,16 +36,16 @@ export function BottomSheetTextInput(props: BottomSheetTextInputProps) {
35
36
  const {
36
37
  isDisabled = false,
37
38
  multiline = false,
39
+ onBlur,
38
40
  onChangeText,
41
+ onClearButtonPress,
42
+ onFocus,
39
43
  placeholder,
44
+ showClearButton = true,
40
45
  style,
41
46
  textInputRef,
42
47
  textStyle,
43
48
  value,
44
- showClearButton = true,
45
- onClearButtonPress,
46
- onFocus,
47
- onBlur,
48
49
  ...extraProps
49
50
  } = props;
50
51
  const [isClearButtonVisible, setIsClearButtonVisible] = useState<boolean>(false);
@@ -102,16 +103,16 @@ export function BottomSheetTextInput(props: BottomSheetTextInputProps) {
102
103
  selectionColor={colors.primary}
103
104
  style={[defaultInputTextStyle, textStyle]}
104
105
  value={value}
105
- onBlur={handleOnBlur}
106
+ onBlur={(e) => handleOnBlur(e as NativeSyntheticEvent<TextInputFocusEventData>)}
106
107
  onChangeText={handleOnChangeText}
107
- onFocus={handleOnFocus}
108
+ onFocus={(e) => handleOnFocus(e as NativeSyntheticEvent<TextInputFocusEventData>)}
108
109
  {...extraProps}
109
110
  />
110
111
  {isClearButtonVisible && (
111
112
  <Pressable
112
113
  hitSlop={30}
113
- testID="clear-button"
114
114
  style={tw`items-center justify-center`}
115
+ testID="clear-button"
115
116
  onPress={handleOnClearPress}
116
117
  >
117
118
  <CrossIcon />
@@ -1,4 +1,3 @@
1
- import { DefaultComponentProps } from '@/types/component.type';
2
1
  import { useEffect, useState } from 'react';
3
2
  import {
4
3
  TextInput as RNTextInput,
@@ -6,10 +5,13 @@ import {
6
5
  StyleProp,
7
6
  TextStyle,
8
7
  } from 'react-native';
8
+
9
9
  import { DefaultTextAreaInputProps, TEXT_INPUT_MIN_HEIGHT } from './constants';
10
10
  import { TextInput } from './text-input.component';
11
11
  import { getTextInputHeightAdjustment } from './util';
12
12
 
13
+ import { DefaultComponentProps } from '@/types/component.type';
14
+
13
15
  export type TextInputAreaProps = DefaultComponentProps &
14
16
  RNTextInputProps & {
15
17
  textInputRef?: React.RefObject<RNTextInput>;
@@ -50,6 +52,7 @@ export function TextInputArea(props: TextInputAreaProps) {
50
52
  {...DefaultTextAreaInputProps}
51
53
  multiline
52
54
  numberOfLines={numberOfLines}
55
+ showClearButton={false}
53
56
  textStyle={[
54
57
  textStyle,
55
58
  {
@@ -59,7 +62,6 @@ export function TextInputArea(props: TextInputAreaProps) {
59
62
  },
60
63
  ]}
61
64
  value={value}
62
- showClearButton={false}
63
65
  onChangeText={handleOnChangeText}
64
66
  {...extraProps}
65
67
  />
File without changes
File without changes