@momo-kits/native-kits 0.157.1-beta.9-debug → 0.157.1-com.1-debug

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 (369) hide show
  1. package/compose/build.gradle.kts +1 -1
  2. package/compose/compose.podspec +1 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +157 -0
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +123 -0
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +224 -0
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +108 -0
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +350 -0
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +87 -0
  9. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +360 -0
  10. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +256 -0
  11. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +494 -0
  12. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +131 -0
  13. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +215 -0
  14. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +449 -0
  15. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +21 -7
  16. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +192 -0
  17. package/gradle.properties +1 -1
  18. package/ios/Input/Input.swift +4 -0
  19. package/local.properties +2 -2
  20. package/package.json +1 -1
  21. package/src/doctor/README.md +73 -0
  22. package/src/doctor/package-lock.json +885 -0
  23. package/src/doctor/package.json +44 -0
  24. package/src/doctor/publish.sh +27 -0
  25. package/src/doctor/src/Users.json +112 -0
  26. package/src/doctor/src/Whitelist.json +6 -0
  27. package/src/doctor/src/commands/check.ts +81 -0
  28. package/src/doctor/src/commands/doctor.ts +193 -0
  29. package/src/doctor/src/index.ts +35 -0
  30. package/src/doctor/src/logger.ts +84 -0
  31. package/src/doctor/src/task/native.ts +21 -0
  32. package/src/doctor/src/task/utils.ts +20 -0
  33. package/src/doctor/src/utils/checkCoreDependencies.ts +138 -0
  34. package/src/doctor/src/utils/checkDeletedPackage.ts +53 -0
  35. package/src/doctor/src/utils/checkDeprecatedPackages.ts +168 -0
  36. package/src/doctor/src/utils/checkDeprecatedVersion.ts +60 -0
  37. package/src/doctor/src/utils/checkShareDependencies.ts +251 -0
  38. package/src/doctor/src/utils/checkWrongVersionCommunityPackage.ts +64 -0
  39. package/src/doctor/src/utils/getErrorMessage.ts +84 -0
  40. package/src/doctor/src/utils/scanComponentUsage.ts +206 -0
  41. package/src/doctor/src/utils/scanFoundationImports.ts +169 -0
  42. package/src/doctor/src/utils/scanMaxApiUsage.ts +86 -0
  43. package/src/doctor/src/utils/scanNativeModulesUsage.ts +78 -0
  44. package/src/doctor/src/utils/sendMessage.ts +28 -0
  45. package/src/doctor/tsconfig.json +14 -0
  46. package/src/doctor/yarn.lock +492 -0
  47. package/src/foundations/Application/BottomSheet.tsx +358 -0
  48. package/src/foundations/Application/BottomTab/BottomTabBar.tsx +320 -0
  49. package/src/foundations/Application/BottomTab/CustomBottomTabItem.tsx +155 -0
  50. package/src/foundations/Application/BottomTab/TabBarIcon.tsx +113 -0
  51. package/src/foundations/Application/BottomTab/index.tsx +449 -0
  52. package/src/foundations/Application/Components/BackgroundImageView.tsx +126 -0
  53. package/src/foundations/Application/Components/HeaderAnimated.tsx +69 -0
  54. package/src/foundations/Application/Components/HeaderBackground.tsx +83 -0
  55. package/src/foundations/Application/Components/HeaderExtendHeader.tsx +225 -0
  56. package/src/foundations/Application/Components/HeaderLeft.tsx +93 -0
  57. package/src/foundations/Application/Components/HeaderRight.tsx +444 -0
  58. package/src/foundations/Application/Components/HeaderTitle.tsx +596 -0
  59. package/src/foundations/Application/Components/NavigationButton.tsx +76 -0
  60. package/src/foundations/Application/Components/SearchHeader.tsx +127 -0
  61. package/src/foundations/Application/Localize.ts +44 -0
  62. package/src/foundations/Application/ModalScreen.tsx +148 -0
  63. package/src/foundations/Application/Navigation.ts +63 -0
  64. package/src/foundations/Application/NavigationContainer.tsx +245 -0
  65. package/src/foundations/Application/Navigator.ts +171 -0
  66. package/src/foundations/Application/ScaleSizeProvider.tsx +16 -0
  67. package/src/foundations/Application/StackScreen.tsx +420 -0
  68. package/src/foundations/Application/TooltipPortal.tsx +127 -0
  69. package/src/foundations/Application/WidgetContainer.tsx +162 -0
  70. package/src/foundations/Application/index.ts +34 -0
  71. package/src/foundations/Application/types.ts +350 -0
  72. package/src/foundations/Application/utils.tsx +239 -0
  73. package/src/foundations/Assets/DotAnimation.json +256 -0
  74. package/src/foundations/Assets/SpinnerAnimation.json +1027 -0
  75. package/src/foundations/Assets/icon.json +4052 -0
  76. package/src/foundations/Assets/icon_bank.json +506 -0
  77. package/src/foundations/Assets/language.json +208 -0
  78. package/src/foundations/Assets/lottie_circle_loader.json +1 -0
  79. package/src/foundations/Assets/pinAnimation.json +1 -0
  80. package/src/foundations/Assets/unpinAnimation.json +1 -0
  81. package/src/foundations/Badge/Badge.tsx +104 -0
  82. package/src/foundations/Badge/BadgeDot.tsx +35 -0
  83. package/src/foundations/Badge/BadgeDotAnimation.tsx +95 -0
  84. package/src/foundations/Badge/BadgeRibbon.tsx +112 -0
  85. package/src/foundations/Badge/Shape.tsx +29 -0
  86. package/src/foundations/Badge/index.tsx +8 -0
  87. package/src/foundations/Badge/styles.ts +125 -0
  88. package/src/foundations/Badge/types.ts +68 -0
  89. package/src/foundations/Button/index.tsx +371 -0
  90. package/src/foundations/Button/styles.ts +65 -0
  91. package/src/foundations/CheckBox/index.tsx +104 -0
  92. package/src/foundations/CheckBox/styles.ts +17 -0
  93. package/src/foundations/CheckBox/types.ts +37 -0
  94. package/src/foundations/Consts/colors+spacing+radius.ts +232 -0
  95. package/src/foundations/Consts/index.ts +4 -0
  96. package/src/foundations/Consts/styles.ts +52 -0
  97. package/src/foundations/Consts/theme.ts +121 -0
  98. package/src/foundations/Context/index.ts +27 -0
  99. package/src/foundations/Divider/DashDivider.tsx +46 -0
  100. package/src/foundations/Divider/index.tsx +45 -0
  101. package/src/foundations/FoundationList/index.tsx +12 -0
  102. package/src/foundations/FoundationList/types.ts +7 -0
  103. package/src/foundations/Icon/index.tsx +57 -0
  104. package/src/foundations/Icon/types.ts +32 -0
  105. package/src/foundations/IconButton/index.tsx +144 -0
  106. package/src/foundations/IconButton/styles.ts +20 -0
  107. package/src/foundations/Image/index.tsx +115 -0
  108. package/src/foundations/Image/styles.ts +7 -0
  109. package/src/foundations/Image/types.ts +7 -0
  110. package/src/foundations/Input/Input.tsx +280 -0
  111. package/src/foundations/Input/InputDropDown.tsx +161 -0
  112. package/src/foundations/Input/InputMoney.tsx +325 -0
  113. package/src/foundations/Input/InputOTP.tsx +299 -0
  114. package/src/foundations/Input/InputPhoneNumber.tsx +287 -0
  115. package/src/foundations/Input/InputSearch.tsx +351 -0
  116. package/src/foundations/Input/InputTextArea.tsx +218 -0
  117. package/src/foundations/Input/SystemTextInput.tsx +44 -0
  118. package/src/foundations/Input/TextTyping.tsx +115 -0
  119. package/src/foundations/Input/common.tsx +243 -0
  120. package/src/foundations/Input/index.tsx +373 -0
  121. package/src/foundations/Input/styles.ts +226 -0
  122. package/src/foundations/Input/utils.ts +97 -0
  123. package/src/foundations/Layout/Card.tsx +108 -0
  124. package/src/foundations/Layout/FloatingButton.tsx +179 -0
  125. package/src/foundations/Layout/GridSystem.tsx +137 -0
  126. package/src/foundations/Layout/Item.tsx +59 -0
  127. package/src/foundations/Layout/ItemList.tsx +66 -0
  128. package/src/foundations/Layout/ItemSectionList.tsx +40 -0
  129. package/src/foundations/Layout/Screen.tsx +644 -0
  130. package/src/foundations/Layout/Section.tsx +103 -0
  131. package/src/foundations/Layout/TrackingScope.tsx +18 -0
  132. package/src/foundations/Layout/index.ts +34 -0
  133. package/src/foundations/Layout/styles.ts +95 -0
  134. package/src/foundations/Layout/types.ts +40 -0
  135. package/src/foundations/Layout/utils.ts +47 -0
  136. package/src/foundations/Loader/DotLoader.tsx +37 -0
  137. package/src/foundations/Loader/Loader.tsx +13 -0
  138. package/src/foundations/Loader/ProgressBar.tsx +45 -0
  139. package/src/foundations/Loader/Spinner.tsx +29 -0
  140. package/src/foundations/Loader/index.tsx +6 -0
  141. package/src/foundations/Loader/styles.ts +10 -0
  142. package/src/foundations/Loader/types.ts +35 -0
  143. package/src/foundations/Loader/utils.ts +25 -0
  144. package/src/foundations/Pagination/Dot.tsx +19 -0
  145. package/src/foundations/Pagination/PaginationDot.tsx +44 -0
  146. package/src/foundations/Pagination/PaginationNumber.tsx +31 -0
  147. package/src/foundations/Pagination/PaginationScroll.tsx +99 -0
  148. package/src/foundations/Pagination/PaginationWhiteDot.tsx +43 -0
  149. package/src/foundations/Pagination/index.tsx +25 -0
  150. package/src/foundations/Pagination/styles.ts +51 -0
  151. package/src/foundations/Pagination/types.ts +40 -0
  152. package/src/foundations/Popup/PopupNotify.tsx +276 -0
  153. package/src/foundations/Popup/PopupPromotion.tsx +118 -0
  154. package/src/foundations/Popup/index.tsx +4 -0
  155. package/src/foundations/Popup/types.ts +96 -0
  156. package/src/foundations/Radio/index.tsx +108 -0
  157. package/src/foundations/Radio/styles.ts +15 -0
  158. package/src/foundations/Radio/types.ts +31 -0
  159. package/src/foundations/Skeleton/index.tsx +118 -0
  160. package/src/foundations/Skeleton/styles.ts +5 -0
  161. package/src/foundations/Skeleton/types.ts +6 -0
  162. package/src/foundations/Switch/index.tsx +68 -0
  163. package/src/foundations/Switch/styles.ts +25 -0
  164. package/src/foundations/Switch/types.ts +19 -0
  165. package/src/foundations/Tag/index.tsx +128 -0
  166. package/src/foundations/Tag/types.ts +41 -0
  167. package/src/foundations/Text/index.tsx +241 -0
  168. package/src/foundations/Text/styles.ts +78 -0
  169. package/src/foundations/Text/types.ts +53 -0
  170. package/src/foundations/Text/utils.ts +63 -0
  171. package/src/foundations/Title/index.tsx +285 -0
  172. package/src/foundations/Title/styles.ts +55 -0
  173. package/src/foundations/Title/types.ts +21 -0
  174. package/src/foundations/index.ts +50 -0
  175. package/src/foundations/package.json +35 -0
  176. package/src/foundations/publish.sh +17 -0
  177. package/src/libs/AutoComplete/index.tsx +88 -0
  178. package/src/libs/AutoComplete/package.json +16 -0
  179. package/src/libs/AutoComplete/publish.sh +16 -0
  180. package/src/libs/AutoComplete/styles.ts +15 -0
  181. package/src/libs/AutoComplete/types.ts +60 -0
  182. package/src/libs/Avatar/index.tsx +146 -0
  183. package/src/libs/Avatar/package.json +16 -0
  184. package/src/libs/Avatar/publish.sh +20 -0
  185. package/src/libs/Avatar/styles.ts +18 -0
  186. package/src/libs/Avatar/types.ts +57 -0
  187. package/src/libs/Badge/Badge.tsx +70 -0
  188. package/src/libs/Badge/BadgeDot.tsx +11 -0
  189. package/src/libs/Badge/BadgeRibbon.tsx +122 -0
  190. package/src/libs/Badge/Shape.tsx +29 -0
  191. package/src/libs/Badge/index.tsx +7 -0
  192. package/src/libs/Badge/package.json +16 -0
  193. package/src/libs/Badge/publish.sh +18 -0
  194. package/src/libs/Badge/styles.ts +55 -0
  195. package/src/libs/Badge/types.ts +63 -0
  196. package/src/libs/Calendar/CalendarPro.tsx +307 -0
  197. package/src/libs/Calendar/Day.tsx +150 -0
  198. package/src/libs/Calendar/HeaderControl.tsx +55 -0
  199. package/src/libs/Calendar/LunarDateConverter.ts +228 -0
  200. package/src/libs/Calendar/LunarService.ts +206 -0
  201. package/src/libs/Calendar/Month.tsx +118 -0
  202. package/src/libs/Calendar/MonthList.tsx +226 -0
  203. package/src/libs/Calendar/TabHeader.tsx +91 -0
  204. package/src/libs/Calendar/Util.ts +288 -0
  205. package/src/libs/Calendar/holidayData.ts +118 -0
  206. package/src/libs/Calendar/index.tsx +383 -0
  207. package/src/libs/Calendar/package.json +18 -0
  208. package/src/libs/Calendar/publish.sh +18 -0
  209. package/src/libs/Calendar/styles.ts +122 -0
  210. package/src/libs/Calendar/types.ts +212 -0
  211. package/src/libs/Carousel/animation.ts +62 -0
  212. package/src/libs/Carousel/index.tsx +517 -0
  213. package/src/libs/Carousel/package.json +18 -0
  214. package/src/libs/Carousel/publish.sh +16 -0
  215. package/src/libs/Carousel/types.ts +71 -0
  216. package/src/libs/Chip/index.tsx +164 -0
  217. package/src/libs/Chip/package.json +16 -0
  218. package/src/libs/Chip/publish.sh +16 -0
  219. package/src/libs/Chip/styles.ts +20 -0
  220. package/src/libs/Chip/types.ts +72 -0
  221. package/src/libs/Collapse/index.tsx +305 -0
  222. package/src/libs/Collapse/package.json +16 -0
  223. package/src/libs/Collapse/publish.sh +18 -0
  224. package/src/libs/Collapse/styles.ts +37 -0
  225. package/src/libs/Collapse/types.ts +84 -0
  226. package/src/libs/DateTimePicker/WheelPicker.tsx +163 -0
  227. package/src/libs/DateTimePicker/WheelPickerItem.tsx +58 -0
  228. package/src/libs/DateTimePicker/index.tsx +188 -0
  229. package/src/libs/DateTimePicker/package.json +16 -0
  230. package/src/libs/DateTimePicker/publish.sh +17 -0
  231. package/src/libs/DateTimePicker/styles.ts +31 -0
  232. package/src/libs/DateTimePicker/types.ts +102 -0
  233. package/src/libs/DateTimePicker/utils.ts +114 -0
  234. package/src/libs/Information/index.tsx +129 -0
  235. package/src/libs/Information/package.json +16 -0
  236. package/src/libs/Information/publish.sh +18 -0
  237. package/src/libs/Information/styles.ts +34 -0
  238. package/src/libs/Information/types.ts +79 -0
  239. package/src/libs/Logo/index.tsx +39 -0
  240. package/src/libs/Logo/package.json +17 -0
  241. package/src/libs/Logo/publish.sh +16 -0
  242. package/src/libs/Logo/styles.ts +25 -0
  243. package/src/libs/Logo/types.ts +13 -0
  244. package/src/libs/ProgressInfo/ProgressInfoHorizontal.tsx +128 -0
  245. package/src/libs/ProgressInfo/ProgressInfoIcon.tsx +88 -0
  246. package/src/libs/ProgressInfo/ProgressInfoVertical.tsx +85 -0
  247. package/src/libs/ProgressInfo/index.tsx +22 -0
  248. package/src/libs/ProgressInfo/package.json +16 -0
  249. package/src/libs/ProgressInfo/publish.sh +16 -0
  250. package/src/libs/ProgressInfo/styles.ts +46 -0
  251. package/src/libs/ProgressInfo/types.ts +60 -0
  252. package/src/libs/ProgressInfo/yarn.lock +8 -0
  253. package/src/libs/Rating/index.tsx +74 -0
  254. package/src/libs/Rating/package.json +16 -0
  255. package/src/libs/Rating/publish.sh +18 -0
  256. package/src/libs/Rating/type.ts +25 -0
  257. package/src/libs/Slider/Label.tsx +33 -0
  258. package/src/libs/Slider/helpers.ts +35 -0
  259. package/src/libs/Slider/hooks.tsx +218 -0
  260. package/src/libs/Slider/index.tsx +453 -0
  261. package/src/libs/Slider/package.json +16 -0
  262. package/src/libs/Slider/publish.sh +18 -0
  263. package/src/libs/Slider/styles.ts +36 -0
  264. package/src/libs/Stepper/NumberView.tsx +64 -0
  265. package/src/libs/Stepper/StepperButton.tsx +37 -0
  266. package/src/libs/Stepper/index.tsx +139 -0
  267. package/src/libs/Stepper/package.json +16 -0
  268. package/src/libs/Stepper/publish.sh +17 -0
  269. package/src/libs/Stepper/styles.ts +44 -0
  270. package/src/libs/Stepper/types.ts +154 -0
  271. package/src/libs/Steps/StepIcon.tsx +86 -0
  272. package/src/libs/Steps/StepsHorizontal.tsx +189 -0
  273. package/src/libs/Steps/StepsVertical.tsx +133 -0
  274. package/src/libs/Steps/index.tsx +20 -0
  275. package/src/libs/Steps/package.json +16 -0
  276. package/src/libs/Steps/publish.sh +16 -0
  277. package/src/libs/Steps/styles.ts +46 -0
  278. package/src/libs/Steps/types.ts +159 -0
  279. package/src/libs/Steps/utils.ts +175 -0
  280. package/src/libs/SuggestAction/SuggestActionView.tsx +124 -0
  281. package/src/libs/SuggestAction/index.tsx +3 -0
  282. package/src/libs/SuggestAction/package.json +16 -0
  283. package/src/libs/SuggestAction/publish.sh +16 -0
  284. package/src/libs/SuggestAction/styles.ts +30 -0
  285. package/src/libs/SuggestAction/types.ts +36 -0
  286. package/src/libs/Swipe/SwipeView.tsx +151 -0
  287. package/src/libs/Swipe/index.tsx +5 -0
  288. package/src/libs/Swipe/package.json +16 -0
  289. package/src/libs/Swipe/publish.sh +16 -0
  290. package/src/libs/Swipe/styles.ts +16 -0
  291. package/src/libs/Swipe/types.ts +109 -0
  292. package/src/libs/TabView/assets/Path.tsx +29 -0
  293. package/src/libs/TabView/index.tsx +184 -0
  294. package/src/libs/TabView/package.json +16 -0
  295. package/src/libs/TabView/publish.sh +16 -0
  296. package/src/libs/TabView/styles.ts +96 -0
  297. package/src/libs/TabView/tabBar/CardTabBar.tsx +137 -0
  298. package/src/libs/TabView/tabBar/SrollableTabBar.tsx +218 -0
  299. package/src/libs/TabView/tabBar/TabBar.tsx +67 -0
  300. package/src/libs/TabView/tabItem/CardTabItem.tsx +118 -0
  301. package/src/libs/TabView/tabItem/TabItem.tsx +180 -0
  302. package/src/libs/TabView/types.ts +166 -0
  303. package/src/libs/Template/HeaderSliderBanner/index.tsx +86 -0
  304. package/src/libs/Template/HeaderSliderBanner/types.ts +16 -0
  305. package/src/libs/Template/TrustBanner/CustomAvatar.tsx +39 -0
  306. package/src/libs/Template/TrustBanner/index.tsx +161 -0
  307. package/src/libs/Template/TrustBanner/styles.ts +48 -0
  308. package/src/libs/Template/TrustBanner/types.ts +50 -0
  309. package/src/libs/Template/index.tsx +4 -0
  310. package/src/libs/Template/package.json +18 -0
  311. package/src/libs/Template/publish.sh +17 -0
  312. package/src/libs/Title/index.tsx +284 -0
  313. package/src/libs/Title/package.json +17 -0
  314. package/src/libs/Title/publish.sh +16 -0
  315. package/src/libs/Title/styles.ts +54 -0
  316. package/src/libs/Title/types.ts +21 -0
  317. package/src/libs/Tooltip/TooltipButtons.tsx +54 -0
  318. package/src/libs/Tooltip/index.tsx +608 -0
  319. package/src/libs/Tooltip/package.json +16 -0
  320. package/src/libs/Tooltip/publish.sh +18 -0
  321. package/src/libs/Tooltip/styles.ts +70 -0
  322. package/src/libs/Tooltip/types.ts +61 -0
  323. package/src/libs/Uploader/index.tsx +87 -0
  324. package/src/libs/Uploader/package.json +17 -0
  325. package/src/libs/Uploader/publish.sh +18 -0
  326. package/src/libs/Uploader/styles.ts +30 -0
  327. package/src/libs/Uploader/types.ts +69 -0
  328. package/src/native/MoMoNative.podspec +18 -0
  329. package/src/native/calculator/android/build.gradle +61 -0
  330. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  331. package/src/native/calculator/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  332. package/src/native/calculator/android/gradlew +172 -0
  333. package/src/native/calculator/android/gradlew.bat +84 -0
  334. package/src/native/calculator/android/src/main/AndroidManifest.xml +5 -0
  335. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewModule.java +22 -0
  336. package/src/native/calculator/android/src/main/java/com/calculator/KeyboardViewPackage.java +35 -0
  337. package/src/native/calculator/android/src/main/java/com/calculator/modules/CalculatorKeyboardModule.java +157 -0
  338. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/CalculatorEditText.java +36 -0
  339. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/FixedRelativeLayout.java +45 -0
  340. package/src/native/calculator/android/src/main/java/com/calculator/views/calculatorkeyboard/MomoTextInputCalculatorManager.java +173 -0
  341. package/src/native/calculator/android/src/main/java/com/calculator/views/customkeyboard/RNCustomKeyboardModule.java +417 -0
  342. package/src/native/calculator/ios/Helper/MomoHelper.swift +16 -0
  343. package/src/native/calculator/ios/KeyboardView-Bridging-Header.h +60 -0
  344. package/src/native/calculator/ios/KeyboardView.h +19 -0
  345. package/src/native/calculator/ios/KeyboardView.m +56 -0
  346. package/src/native/calculator/ios/MomoTextInputCalculator.swift +144 -0
  347. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.h +6 -0
  348. package/src/native/calculator/ios/RNCustomKeyboard/RNCustomKeyboard.m +143 -0
  349. package/src/native/package.json +14 -0
  350. package/src/native/publish.sh +29 -0
  351. package/src/native/resource/android/build.gradle +57 -0
  352. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  353. package/src/native/resource/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  354. package/src/native/resource/android/src/main/AndroidManifest.xml +6 -0
  355. package/src/native/resource/android/src/main/java/com/resource/RNResourceModule.java +90 -0
  356. package/src/native/resource/android/src/main/java/com/resource/RNResourcePackage.java +22 -0
  357. package/src/native/resource/ios/RNResouce.m +71 -0
  358. package/src/native/resource/ios/RNResource.h +5 -0
  359. package/example/ios/Example.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  360. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  361. package/example/ios/Example.xcworkspace/xcuserdata/sophia.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  362. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  363. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  364. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  365. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  366. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  367. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  368. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  369. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sophia.xcuserdatad/xcschemes/xcschememanagement.plist +0 -46
@@ -0,0 +1,444 @@
1
+ import React, { useCallback, useContext, useEffect, useState } from 'react';
2
+ import {
3
+ Platform,
4
+ StyleSheet,
5
+ TouchableOpacity,
6
+ View,
7
+ ViewStyle,
8
+ } from 'react-native';
9
+ import { NavigationButton } from './NavigationButton';
10
+ import { ApplicationContext, MiniAppContext } from '../../Context';
11
+ import { Colors, Spacing, Styles } from '../../Consts';
12
+ import { PopupNotify } from '../../Popup';
13
+ import { Tool, ToolGroup } from '../types';
14
+ import { Icon } from '../../Icon';
15
+ import { Text } from '../../Text';
16
+
17
+ const DID_SYNC_NEW_HOME = 'did_sync_new_home';
18
+
19
+ /**
20
+ * main component for header right
21
+ */
22
+ const HeaderRight: React.FC<any> = props => {
23
+ const { translate } = useContext(ApplicationContext);
24
+ const { headerRight = {} } = props;
25
+ const { useOnBoarding = false, buttonOnBoarding, onPress } = headerRight;
26
+
27
+ if (typeof props.headerRight === 'function') {
28
+ return props.headerRight(props);
29
+ }
30
+
31
+ if (useOnBoarding && onPress) {
32
+ return (
33
+ <TouchableOpacity onPress={onPress} style={styles.onBoarding}>
34
+ <Text typography={'action_s_bold'}>
35
+ {buttonOnBoarding || translate?.('skip')}
36
+ </Text>
37
+ </TouchableOpacity>
38
+ );
39
+ }
40
+
41
+ return (
42
+ <View style={styles.headerRightButton}>
43
+ <HeaderToolkitAction {...props.headerRight} tintColor={props.tintColor} />
44
+ </View>
45
+ );
46
+ };
47
+
48
+ /**
49
+ * Header toolkit action
50
+ */
51
+ const HeaderToolkitAction: React.FC<any> = ({
52
+ tintColor,
53
+ preventClose,
54
+ useSystemTools = true,
55
+ useShortcut = false,
56
+ useMore = false,
57
+ tools = [],
58
+ useCloseIcon = false,
59
+ }) => {
60
+ const { navigator } = useContext(ApplicationContext);
61
+ const context = useContext<any>(MiniAppContext);
62
+
63
+ const [isFavorite, setIsFavorite] = useState<boolean>(false);
64
+ const [isLoading, setIsLoading] = useState(false);
65
+
66
+ /**
67
+ * check app is favorite
68
+ */
69
+ const checkAppIsFavorite = useCallback(
70
+ () =>
71
+ navigator?.maxApi?.dispatchFunction?.(
72
+ 'isFavoriteApp',
73
+ { code: context?.code },
74
+ (result: boolean) => {
75
+ setIsFavorite(result);
76
+ },
77
+ ),
78
+ [context?.code, navigator?.maxApi],
79
+ );
80
+
81
+ useEffect(() => {
82
+ if (useShortcut) {
83
+ checkAppIsFavorite();
84
+
85
+ const favoriteObserver = navigator?.maxApi?.observer?.(
86
+ DID_SYNC_NEW_HOME,
87
+ (updatedData: any) => {
88
+ const status = updatedData?.items?.includes(context?.code);
89
+ setIsFavorite(status);
90
+ },
91
+ );
92
+ return () => {
93
+ favoriteObserver?.remove?.();
94
+ };
95
+ }
96
+ }, [useShortcut, context, checkAppIsFavorite, navigator?.maxApi]);
97
+
98
+ let buttonStyle: ViewStyle = {};
99
+ if (tintColor === Colors.black_01 || tintColor === 'white') {
100
+ buttonStyle = {
101
+ backgroundColor: '#00000099',
102
+ borderColor: '#FFFFFF33',
103
+ };
104
+ }
105
+
106
+ const onDismiss = () => {
107
+ if (useCloseIcon) {
108
+ navigator?.maxApi?.dispatchFunction?.(
109
+ 'dismiss',
110
+ navigator?.dismissData,
111
+ undefined,
112
+ );
113
+ } else {
114
+ navigator?.maxApi?.dispatchFunction?.('dismissAll');
115
+ }
116
+ };
117
+
118
+ /**
119
+ * close navigation container
120
+ */
121
+ const onClose = () => {
122
+ const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
123
+ context?.autoTracking?.({
124
+ ...context,
125
+ componentName: 'IconButton',
126
+ componentId: 'navigation_close',
127
+ screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
128
+ });
129
+
130
+ if (preventClose) {
131
+ navigator?.showModal({
132
+ screen: () => (
133
+ <PopupNotify
134
+ {...preventClose}
135
+ primary={{
136
+ title: preventClose.primary.title,
137
+ onPress: () => {
138
+ preventClose?.primary.onPress();
139
+ onDismiss();
140
+ },
141
+ }}
142
+ />
143
+ ),
144
+ });
145
+ } else {
146
+ onDismiss();
147
+ }
148
+ };
149
+
150
+ /**
151
+ * on press shortcut
152
+ */
153
+ const onPressShortcut = () => {
154
+ const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
155
+ const expected = !isFavorite;
156
+ context?.autoTracking?.({
157
+ ...context,
158
+ componentName: 'IconButton',
159
+ componentId: `${expected ? 'pin' : 'unpin'}_shortcut`,
160
+ screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
161
+ });
162
+ setIsLoading(true);
163
+ navigator?.maxApi?.dispatchFunction?.(
164
+ 'onToolAction',
165
+ {
166
+ item: {
167
+ key: 'onFavorite',
168
+ },
169
+ context,
170
+ },
171
+ ({ success }: { success: boolean }) => {
172
+ if (success) {
173
+ setIsFavorite(expected);
174
+ }
175
+ },
176
+ );
177
+ setTimeout(() => {
178
+ setIsLoading(false);
179
+ }, 1000);
180
+ };
181
+
182
+ /**
183
+ * on press help center
184
+ */
185
+ const onPressHelpCenter = () => {
186
+ const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
187
+ context?.autoTracking?.({
188
+ ...context,
189
+ componentName: 'IconButton',
190
+ componentId: 'navigation_helpcenter',
191
+ screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
192
+ });
193
+
194
+ navigator?.maxApi?.dispatchFunction?.('showHelpCenter', context);
195
+ };
196
+
197
+ /**
198
+ * on press icon more
199
+ */
200
+ const onPressIconMore = () => {
201
+ const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
202
+ context?.autoTracking?.({
203
+ ...context,
204
+ componentName: 'IconButton',
205
+ componentId: 'navigation_more',
206
+ screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
207
+ });
208
+
209
+ navigator?.maxApi?.dispatchFunction?.(
210
+ 'showTools',
211
+ {
212
+ useSystemTools,
213
+ tools,
214
+ context,
215
+ },
216
+ (key: string) => {
217
+ for (const group of tools) {
218
+ const pressedTool = group?.items?.find?.(
219
+ (tool: Tool) => tool?.key === key,
220
+ );
221
+ if (pressedTool) {
222
+ pressedTool?.onPress();
223
+ break;
224
+ }
225
+ }
226
+ },
227
+ );
228
+ };
229
+
230
+ let iconShortcut = isFavorite ? 'pin_star_checked' : 'pin_star';
231
+ let shortcutOnPress = onPressShortcut;
232
+ const totalTools = tools.reduce(
233
+ (count: number, group: ToolGroup) => count + group?.items?.length,
234
+ 0,
235
+ );
236
+ const showIconMore = tools && totalTools > 1;
237
+ const isHaveOneTool = tools && totalTools === 1;
238
+
239
+ if (showIconMore || useMore) {
240
+ iconShortcut = 'navigation_more_icon';
241
+ shortcutOnPress = onPressIconMore;
242
+ } else if (isHaveOneTool) {
243
+ const singleTool = tools.find(
244
+ (group: ToolGroup) => group?.items?.length === 1,
245
+ )?.items[0];
246
+ iconShortcut = singleTool?.icon;
247
+ shortcutOnPress = () => {
248
+ singleTool?.onPress?.();
249
+ const currentRoute = navigator?.ref?.current?.getCurrentRoute?.();
250
+ context?.autoTracking?.({
251
+ ...context,
252
+ componentName: 'IconButton',
253
+ componentId: 'navigation_shortcut',
254
+ screenName: currentRoute?.params?.screen?.name ?? currentRoute?.name,
255
+ });
256
+ };
257
+ }
258
+
259
+ const showBadge = tools.some((group: ToolGroup) =>
260
+ group?.items?.some?.(tool => tool?.showBadge),
261
+ );
262
+
263
+ return (
264
+ <View style={Styles.row}>
265
+ {useShortcut && (
266
+ <NavigationButton
267
+ disabled={isLoading}
268
+ icon={iconShortcut}
269
+ onPress={shortcutOnPress}
270
+ tintColor={tintColor}
271
+ showBadge={showBadge}
272
+ />
273
+ )}
274
+ <View
275
+ style={[
276
+ styles.toolkitContainer,
277
+ buttonStyle,
278
+ {
279
+ width: context.appId !== 'vn.momo.helpcenter' ? 65 : 28,
280
+ },
281
+ ]}
282
+ >
283
+ {context.appId !== 'vn.momo.helpcenter' && (
284
+ <>
285
+ <TouchableOpacity
286
+ accessibilityLabel={'btn_navigation_help_center'}
287
+ style={styles.toolkitButton}
288
+ onPress={onPressHelpCenter}
289
+ hitSlop={{ top: 7, bottom: 7, left: 7, right: 0 }}
290
+ >
291
+ <Icon color={tintColor} source={'help_center'} size={20} />
292
+ </TouchableOpacity>
293
+ <View style={[styles.divider, { backgroundColor: tintColor }]} />
294
+ </>
295
+ )}
296
+ <TouchableOpacity
297
+ accessibilityLabel={'btn_navigation_close'}
298
+ onPress={onClose}
299
+ style={styles.toolkitButton}
300
+ hitSlop={{ top: 7, bottom: 7, left: 0, right: 7 }}
301
+ >
302
+ <Icon
303
+ color={tintColor}
304
+ source={
305
+ useCloseIcon ? '16_navigation_close_circle' : '16_basic_home'
306
+ }
307
+ size={20}
308
+ />
309
+ </TouchableOpacity>
310
+ </View>
311
+ </View>
312
+ );
313
+ };
314
+
315
+ const styles = StyleSheet.create({
316
+ navigationButton: {
317
+ height: 28,
318
+ width: 28,
319
+ borderRadius: 14,
320
+ justifyContent: 'center',
321
+ alignItems: 'center',
322
+ backgroundColor: '#FFFFFF99',
323
+ borderColor: '#00000033',
324
+ borderWidth: 0.2,
325
+ },
326
+ headerBackground: {
327
+ width: '100%',
328
+ height: undefined,
329
+ position: 'absolute',
330
+ aspectRatio: 375 / 154,
331
+ },
332
+ headerTitleContainer: {
333
+ alignItems: 'center',
334
+ justifyContent: 'center',
335
+ width: '70%',
336
+ },
337
+ circle: {
338
+ width: 32,
339
+ height: 32,
340
+ borderRadius: 16,
341
+ borderWidth: 0.5,
342
+ borderColor: Colors.black_04,
343
+ },
344
+ dotAvatar: {
345
+ position: 'absolute',
346
+ width: 12,
347
+ height: 12,
348
+ borderRadius: 6,
349
+ bottom: -2,
350
+ right: -2,
351
+ borderWidth: 2,
352
+ borderColor: Colors.black_01,
353
+ },
354
+ headerButton: { paddingHorizontal: 4 },
355
+ headerRightButton: {
356
+ flexDirection: 'row',
357
+ justifyContent: 'center',
358
+ alignItems: 'center',
359
+ paddingRight: Spacing.M,
360
+ },
361
+ toolkitContainer: {
362
+ height: 28,
363
+ borderRadius: 14,
364
+ justifyContent: 'center',
365
+ alignItems: 'center',
366
+ flexDirection: 'row',
367
+ backgroundColor: '#FFFFFF99',
368
+ borderColor: '#00000033',
369
+ borderWidth: 0.2,
370
+ marginLeft: Spacing.S,
371
+ },
372
+ toolkitButton: {
373
+ padding: 4,
374
+ },
375
+ divider: {
376
+ width: 0.5,
377
+ height: 12,
378
+ },
379
+ headerLeft: {
380
+ marginLeft: 12,
381
+ },
382
+ badge: {
383
+ position: 'absolute',
384
+ top: -Spacing.S,
385
+ right: -6,
386
+ },
387
+ badgeDot: {
388
+ position: 'absolute',
389
+ top: -Spacing.XXS,
390
+ right: -Spacing.XXS,
391
+ },
392
+ badgeDotAnimation: {
393
+ position: 'absolute',
394
+ top: -Spacing.XS,
395
+ right: -Spacing.XS,
396
+ },
397
+ gradientContainer: {
398
+ width: '100%',
399
+ height: '100%',
400
+ position: 'absolute',
401
+ overflow: 'hidden',
402
+ },
403
+ extendedHeader: {
404
+ aspectRatio: 2.43,
405
+ position: 'absolute',
406
+ width: '100%',
407
+ },
408
+ verifiedDot: {
409
+ width: 4,
410
+ height: 4,
411
+ borderRadius: 2,
412
+ backgroundColor: Colors.green_03,
413
+ position: 'absolute',
414
+ alignSelf: 'center',
415
+ },
416
+ shadowHeader: {
417
+ ...Platform.select({
418
+ ios: {
419
+ shadowColor: Colors.black_20,
420
+ shadowOffset: {
421
+ width: 3,
422
+ height: 3,
423
+ },
424
+ shadowOpacity: 0.12,
425
+ shadowRadius: 10,
426
+ },
427
+ android: {
428
+ shadowColor: Colors.black_17,
429
+ shadowOffset: {
430
+ width: 3,
431
+ height: 3,
432
+ },
433
+ shadowOpacity: 0.12,
434
+ shadowRadius: 10,
435
+ elevation: 10,
436
+ },
437
+ }),
438
+ },
439
+ onBoarding: {
440
+ marginRight: Spacing.M,
441
+ },
442
+ });
443
+
444
+ export { HeaderRight };