@eohjsc/react-native-smart-city 0.2.20 → 0.2.26

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 (340) hide show
  1. package/README.md +1 -1
  2. package/assets/images/Add.svg +5 -0
  3. package/assets/images/AddLocationMaps/Point.svg +3 -0
  4. package/assets/images/CheckCircle.svg +4 -0
  5. package/assets/images/Close.svg +3 -0
  6. package/assets/images/HowToStart.svg +14 -0
  7. package/assets/images/OneTap.svg +14 -0
  8. package/assets/images/OneTap@1x.svg +14 -0
  9. package/assets/images/Rearrange.svg +3 -0
  10. package/assets/images/Schedule.svg +39 -0
  11. package/assets/images/WeatherChange.svg +49 -0
  12. package/package.json +12 -2
  13. package/src/Images/Common/ActiveButton.png +0 -0
  14. package/src/Images/Common/ActiveButton@2x.png +0 -0
  15. package/src/Images/Common/ActiveButton@3x.png +0 -0
  16. package/src/Images/Common/arrow-back.png +0 -0
  17. package/src/Images/Common/checked@2x.png +0 -0
  18. package/src/Images/Common/checked@3x.png +0 -0
  19. package/src/Images/Common/file.png +0 -0
  20. package/src/Images/Common/fullscreen.png +0 -0
  21. package/src/Images/Common/refresh.png +0 -0
  22. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
  23. package/src/commons/ActionGroup/OnOffTemplate/index.js +4 -4
  24. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +7 -4
  25. package/src/commons/ActionGroup/StatesGridActionTemplate.js +12 -3
  26. package/src/commons/ActionGroup/ThreeButtonTemplate.js +13 -6
  27. package/src/commons/ActionGroup/ThreeButtonTemplateStyle.js +1 -1
  28. package/src/commons/ActionGroup/TimerActionTemplate.js +158 -33
  29. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
  30. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
  31. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -45
  32. package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
  33. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
  34. package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
  35. package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
  36. package/src/commons/ActionGroup/__test__/index.test.js +39 -107
  37. package/src/commons/ActionGroup/hooks/useDropdownAction.js +2 -1
  38. package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
  39. package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
  40. package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
  41. package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
  42. package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
  43. package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
  44. package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
  45. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
  46. package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
  47. package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
  48. package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
  49. package/src/commons/ActionTemplate/index.js +69 -0
  50. package/src/commons/Automate/ItemAddNewScriptAction.js +30 -0
  51. package/src/commons/Automate/ItemAddNewScriptActionStyles.js +38 -0
  52. package/src/commons/Automate/ItemAutomate.js +33 -0
  53. package/src/commons/Automate/ItemAutomateStyles.js +33 -0
  54. package/src/commons/Automate/ItemScriptAction.js +45 -0
  55. package/src/commons/Automate/ItemScriptActionStyles.js +42 -0
  56. package/src/commons/BottomScrollPicker/index.js +58 -0
  57. package/src/commons/BottomScrollPicker/styles.js +13 -0
  58. package/src/commons/BottomSheet/index.js +36 -0
  59. package/src/commons/BottomSheet/styles.js +37 -0
  60. package/src/commons/Button/index.js +6 -1
  61. package/src/commons/CameraDevice/index.js +2 -1
  62. package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
  63. package/src/commons/ChartLoading/index.js +2 -1
  64. package/src/commons/DateTimeRangeChange/index.js +2 -1
  65. package/src/commons/Device/ConnectedViewHeader.js +3 -1
  66. package/src/commons/Device/DeviceAlertStatus.js +5 -2
  67. package/src/commons/Device/DisconnectedView.js +34 -26
  68. package/src/commons/Device/Emergency/EmergencyButton.js +2 -1
  69. package/src/commons/Device/Emergency/EmergencyDetail.js +2 -1
  70. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
  71. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
  72. package/src/commons/Device/FlatListItems.js +3 -2
  73. package/src/commons/Device/FooterInfo.js +2 -1
  74. package/src/commons/Device/HistoryChart.js +2 -1
  75. package/src/commons/Device/ItemAddNew/index.js +6 -1
  76. package/src/commons/Device/SensorConnectedStatus.js +2 -1
  77. package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
  78. package/src/commons/Device/WindDirection/Compass/index.js +1 -1
  79. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
  80. package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
  81. package/src/commons/Device/WindSpeed/LinearChart/index.js +2 -1
  82. package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
  83. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -5
  84. package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
  85. package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
  86. package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
  87. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
  88. package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
  89. package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
  90. package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -1
  91. package/src/commons/EmergencyButton/AlertSent.js +3 -2
  92. package/src/commons/Explore/CityItem/index.js +2 -1
  93. package/src/commons/Explore/HeaderExplore/index.js +2 -1
  94. package/src/commons/Explore/HeaderLabel/index.js +2 -1
  95. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
  96. package/src/commons/Explore/SearchBox/index.js +2 -1
  97. package/src/commons/Explore/__test__/CityItem.test.js +13 -15
  98. package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
  99. package/src/commons/Header/HeaderCustom.js +17 -1
  100. package/src/commons/Header/Styles/HeaderCustomStyles.js +2 -2
  101. package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
  102. package/src/commons/HeaderAni/index.js +6 -3
  103. package/src/commons/IconComponent/index.js +18 -3
  104. package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
  105. package/src/commons/ImagePicker/index.js +3 -1
  106. package/src/commons/MediaPlayer/index.js +2 -1
  107. package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
  108. package/src/commons/MediaPlayerDetail/index.js +4 -1
  109. package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
  110. package/src/commons/MenuActionAddnew/index.js +2 -1
  111. package/src/commons/Modal/ModalBottom.js +51 -0
  112. package/src/commons/Modal/ModalFullVideo.js +2 -1
  113. package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
  114. package/src/commons/Modal/index.js +2 -1
  115. package/src/commons/NavBar/index.js +2 -2
  116. package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
  117. package/src/commons/SelectActionCard/index.js +30 -0
  118. package/src/commons/Sharing/DevicePermissionsCheckbox.js +2 -1
  119. package/src/commons/Sharing/MemberList.js +3 -1
  120. package/src/commons/Sharing/RowMember.js +3 -2
  121. package/src/commons/Sharing/StationDevicePermissions.js +2 -1
  122. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
  123. package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
  124. package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
  125. package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
  126. package/src/commons/SubUnit/OneTap/ItemOneTap.js +97 -0
  127. package/src/commons/SubUnit/OneTap/ItemOneTapStyles.js +41 -0
  128. package/src/commons/SubUnit/OneTap/OneTapStyles.js +36 -0
  129. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +149 -0
  130. package/src/commons/SubUnit/OneTap/index.js +39 -0
  131. package/src/commons/SubUnit/ShortDetail.js +11 -6
  132. package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
  133. package/src/commons/Today/__test__/Today.test.js +9 -1
  134. package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
  135. package/src/commons/Today/index.js +2 -1
  136. package/src/commons/Unit/SharedUnit.js +2 -1
  137. package/src/commons/UnitSummary/AirQuality/SegmentedRoundDisplay/index.js +1 -2
  138. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
  139. package/src/commons/UnitSummary/AirQuality/index.js +5 -120
  140. package/src/commons/UnitSummary/AirQuality/styles.js +112 -0
  141. package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -1
  142. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
  143. package/src/commons/WheelDateTimePicker/Picker.js +57 -0
  144. package/src/commons/WheelDateTimePicker/index.js +160 -0
  145. package/src/commons/WheelDateTimePicker/styles.js +21 -0
  146. package/src/configs/API.js +25 -0
  147. package/src/configs/Colors.js +1 -0
  148. package/src/configs/Constants.js +46 -0
  149. package/src/configs/Images.js +1 -0
  150. package/src/configs/SCConfig.js +7 -0
  151. package/src/context/SCContext.tsx +7 -37
  152. package/src/context/actionType.ts +11 -0
  153. package/src/context/mockStore.ts +49 -0
  154. package/src/context/reducer.ts +23 -0
  155. package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
  156. package/src/hooks/Common/index.js +2 -0
  157. package/src/hooks/Common/useGetIdUser.js +9 -0
  158. package/src/hooks/Common/useTranslations.ts +34 -0
  159. package/src/iot/Monitor.js +2 -1
  160. package/src/iot/RemoteControl/Bluetooth.js +2 -6
  161. package/src/iot/RemoteControl/GoogleHome.js +1 -1
  162. package/src/iot/RemoteControl/Internet.js +1 -1
  163. package/src/iot/RemoteControl/LG.js +57 -15
  164. package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -5
  165. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -3
  166. package/src/iot/RemoteControl/__test__/Internet.test.js +1 -8
  167. package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
  168. package/src/iot/RemoteControl/index.js +1 -1
  169. package/src/iot/states.js +1 -0
  170. package/src/navigations/SharedStack.js +2 -1
  171. package/src/navigations/UnitStack.js +62 -1
  172. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
  173. package/src/screens/AQIGuide/index.js +2 -2
  174. package/src/screens/ActivityLog/__test__/index.test.js +14 -39
  175. package/src/screens/ActivityLog/index.js +2 -1
  176. package/src/screens/AddCommon/SelectSubUnit.js +5 -4
  177. package/src/screens/AddCommon/SelectUnit.js +3 -2
  178. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
  179. package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
  180. package/src/screens/AddLocationMaps/index.js +2 -1
  181. package/src/screens/AddNewAction/Device/DeviceStyles.js +43 -0
  182. package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
  183. package/src/screens/AddNewAction/Device/index.js +33 -0
  184. package/src/screens/AddNewAction/SelectAction.js +152 -0
  185. package/src/screens/AddNewAction/SelectDevice.js +120 -0
  186. package/src/screens/AddNewAction/Styles/SelectActionStyles.js +24 -0
  187. package/src/screens/AddNewAction/Styles/SelectDeviceStyles.js +36 -0
  188. package/src/screens/AddNewAction/__test__/SelectAction.test.js +172 -0
  189. package/src/screens/AddNewAction/__test__/SelectDevice.test.js +191 -0
  190. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +55 -0
  191. package/src/screens/AddNewAutoSmart/index.js +85 -0
  192. package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
  193. package/src/screens/AddNewDevice/ConnectDevices.js +2 -1
  194. package/src/screens/AddNewDevice/ConnectingDevices.js +2 -1
  195. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -13
  196. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -7
  197. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -6
  198. package/src/screens/AddNewDevice/hooks/useStateAlertRename.js +2 -1
  199. package/src/screens/AddNewDevice/index.js +2 -1
  200. package/src/screens/AddNewGateway/ConnectedGateway.js +2 -1
  201. package/src/screens/AddNewGateway/ConnectingGateway.js +99 -24
  202. package/src/screens/AddNewGateway/ConnectingGatewayStyles.js +92 -0
  203. package/src/screens/AddNewGateway/SetupGatewayWifi.js +3 -2
  204. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -72
  205. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -4
  206. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -10
  207. package/src/screens/AddNewGateway/hooks/useStateAlertRename.js +2 -1
  208. package/src/screens/AddNewGateway/index.js +2 -1
  209. package/src/screens/AddNewOneTap/AddNewOneTapStyles.js +43 -0
  210. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +129 -0
  211. package/src/screens/AddNewOneTap/index.js +80 -0
  212. package/src/screens/AddNewScriptAction/AddNewScriptActionStyles.js +28 -0
  213. package/src/screens/AddNewScriptAction/index.js +100 -0
  214. package/src/screens/AllCamera/index.js +2 -1
  215. package/src/screens/Device/HeaderDevice/styles.js +2 -2
  216. package/src/screens/Device/__test__/detail.test.js +26 -18
  217. package/src/screens/Device/detail.js +56 -28
  218. package/src/screens/Device/hooks/useCountUp.js +4 -0
  219. package/src/screens/Device/hooks/useEmergencyButton.js +3 -2
  220. package/src/screens/Device/styles.js +5 -1
  221. package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
  222. package/src/screens/DeviceInfo/index.js +2 -1
  223. package/src/screens/EditActionsList/Styles/indexStyles.js +84 -0
  224. package/src/screens/EditActionsList/index.js +186 -0
  225. package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +3 -2
  226. package/src/screens/EmergencyContacts/EmergencyContactsList.js +9 -2
  227. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +2 -1
  228. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -18
  229. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -23
  230. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
  231. package/src/screens/EmergencyContacts/hook.js +3 -2
  232. package/src/screens/Explore/index.js +3 -2
  233. package/src/screens/GuestInfo/components/AccessScheduleItem.js +27 -0
  234. package/src/screens/GuestInfo/components/AccessScheduleSheet.js +193 -0
  235. package/src/screens/GuestInfo/components/HeaderGuestInfo.js +31 -0
  236. package/src/screens/GuestInfo/components/RecurringDetail.js +99 -0
  237. package/src/screens/GuestInfo/components/RowGuestInfo.js +31 -0
  238. package/src/screens/GuestInfo/components/TemporaryDetail.js +46 -0
  239. package/src/screens/GuestInfo/constant.js +59 -0
  240. package/src/screens/GuestInfo/index.js +151 -0
  241. package/src/screens/GuestInfo/styles/AccessScheduleDetailStyles.js +31 -0
  242. package/src/screens/GuestInfo/styles/AccessScheduleItemStyles.js +22 -0
  243. package/src/screens/GuestInfo/styles/HeaderGuestInfoStyles.js +31 -0
  244. package/src/screens/GuestInfo/styles/indexStyles.js +38 -0
  245. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
  246. package/src/screens/ManageAccess/hooks/index.js +4 -0
  247. package/src/screens/ManageAccess/index.js +49 -20
  248. package/src/screens/ManageAccess/styles/ManageAccessStyles.js +3 -0
  249. package/src/screens/PlayBackCamera/index.js +9 -5
  250. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
  251. package/src/screens/ScanChipQR/components/QRScan/index.js +2 -1
  252. package/src/screens/ScriptDetail/Styles/indexStyles.js +143 -0
  253. package/src/screens/ScriptDetail/index.js +243 -0
  254. package/src/screens/SharedUnit/TabHeader.js +2 -1
  255. package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
  256. package/src/screens/SharedUnit/index.js +3 -2
  257. package/src/screens/Sharing/MemberList.js +2 -1
  258. package/src/screens/Sharing/SelectPermission.js +2 -1
  259. package/src/screens/Sharing/SelectUser.js +3 -2
  260. package/src/screens/Sharing/__test__/MemberList.test.js +17 -13
  261. package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
  262. package/src/screens/Sharing/__test__/SelectUser.test.js +33 -15
  263. package/src/screens/Sharing/hooks/index.js +22 -17
  264. package/src/screens/SubUnit/AddSubUnit.js +3 -2
  265. package/src/screens/SubUnit/Detail.js +5 -4
  266. package/src/screens/SubUnit/ManageSubUnit.js +10 -9
  267. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -11
  268. package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
  269. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +42 -31
  270. package/src/screens/SyncLGDevice/AddLGDevice.js +3 -2
  271. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
  272. package/src/screens/TDSGuide/index.js +2 -1
  273. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
  274. package/src/screens/UVIndexGuide/index.js +2 -1
  275. package/src/screens/Unit/AddMenu.js +3 -2
  276. package/src/screens/Unit/Detail.js +65 -20
  277. package/src/screens/Unit/ManageUnit/index.js +4 -3
  278. package/src/screens/Unit/ManageUnit.js +5 -4
  279. package/src/screens/Unit/MoreMenu.js +3 -2
  280. package/src/screens/Unit/SelectLocation.js +8 -2
  281. package/src/screens/Unit/SelectLocationStyles.js +11 -0
  282. package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
  283. package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
  284. package/src/screens/Unit/__test__/Detail.test.js +92 -33
  285. package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
  286. package/src/screens/Unit/components/Header/index.js +2 -1
  287. package/src/screens/Unit/components/ListMyAllUnit/index.js +2 -1
  288. package/src/screens/Unit/components/MyUnit/index.js +2 -1
  289. package/src/screens/Unit/components/SearchLocation/index.js +2 -1
  290. package/src/screens/Unit/components/SharedUnit/index.js +2 -1
  291. package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
  292. package/src/screens/UnitSummary/__test__/index.test.js +12 -4
  293. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
  294. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -1
  295. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
  296. package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -1
  297. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
  298. package/src/screens/UnitSummary/components/Temperature/index.js +2 -1
  299. package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -1
  300. package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
  301. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
  302. package/src/screens/UnitSummary/components/UvIndex/index.js +2 -1
  303. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
  304. package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -1
  305. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
  306. package/src/screens/UnitSummary/index.js +2 -1
  307. package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
  308. package/src/screens/WaterQualityGuide/index.js +2 -1
  309. package/src/utils/Converter/array.js +4 -0
  310. package/src/utils/Converter/time.js +29 -4
  311. package/src/utils/I18n/index.ts +6 -0
  312. package/src/utils/I18n/translations/en.json +48 -2
  313. package/src/utils/I18n/translations/vi.json +45 -1
  314. package/src/utils/I18n/translations.ts +45 -0
  315. package/src/utils/Route/index.js +8 -0
  316. package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
  317. package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
  318. package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
  319. package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
  320. package/src/commons/Explore/__test__/HeaderExplore.test.js +0 -21
  321. package/src/commons/Header/__test__/Header.test.js +0 -24
  322. package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
  323. package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
  324. package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
  325. package/src/iot/RemoteControl/__test__/index.test.js +0 -101
  326. package/src/iot/__test__/Monitor.test.js +0 -119
  327. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
  328. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
  329. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
  330. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -358
  331. package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  332. package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
  333. package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  334. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
  335. package/src/screens/Unit/components/__test__/MyUnit.test.js +0 -85
  336. package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
  337. package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
  338. package/src/utils/Converter/__test__/time.test.js +0 -126
  339. package/src/utils/I18n/index.js +0 -19
  340. package/src/utils/I18n/index.test.js +0 -7
@@ -88,7 +88,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
88
88
  ]
89
89
  }
90
90
  >
91
- Ngắt kết nối
91
+ Disconnected
92
92
  </Text>
93
93
  </View>
94
94
  <View
@@ -143,7 +143,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
143
143
  ]
144
144
  }
145
145
  >
146
- Gợi ý
146
+ Suggestions
147
147
  :
148
148
  </Text>
149
149
  </View>
@@ -191,7 +191,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
191
191
  ]
192
192
  }
193
193
  >
194
- Kiểm tra lại nguồn điện của thiết bị.
194
+ Check the power on your device.
195
195
  </Text>
196
196
  </View>
197
197
  <View
@@ -238,7 +238,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
238
238
  ]
239
239
  }
240
240
  >
241
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
241
+ Check the Wi-Fi/Cellular signal or try to reset it.
242
242
  </Text>
243
243
  </View>
244
244
  </View>
@@ -333,7 +333,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
333
333
  ]
334
334
  }
335
335
  >
336
- Ngắt kết nối
336
+ Disconnected
337
337
  </Text>
338
338
  </View>
339
339
  <View
@@ -388,7 +388,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
388
388
  ]
389
389
  }
390
390
  >
391
- Gợi ý
391
+ Suggestions
392
392
  :
393
393
  </Text>
394
394
  </View>
@@ -436,7 +436,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
436
436
  ]
437
437
  }
438
438
  >
439
- Kiểm tra lại nguồn điện của thiết bị.
439
+ Check the power on your device.
440
440
  </Text>
441
441
  </View>
442
442
  <View
@@ -483,7 +483,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
483
483
  ]
484
484
  }
485
485
  >
486
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
486
+ Check the Wi-Fi/Cellular signal or try to reset it.
487
487
  </Text>
488
488
  </View>
489
489
  </View>
@@ -578,7 +578,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
578
578
  ]
579
579
  }
580
580
  >
581
- Ngắt kết nối
581
+ Disconnected
582
582
  </Text>
583
583
  </View>
584
584
  <View
@@ -633,7 +633,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
633
633
  ]
634
634
  }
635
635
  >
636
- Gợi ý
636
+ Suggestions
637
637
  :
638
638
  </Text>
639
639
  </View>
@@ -681,7 +681,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
681
681
  ]
682
682
  }
683
683
  >
684
- Kiểm tra lại nguồn điện của thiết bị.
684
+ Check the power on your device.
685
685
  </Text>
686
686
  </View>
687
687
  <View
@@ -728,7 +728,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
728
728
  ]
729
729
  }
730
730
  >
731
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
731
+ Check the Wi-Fi/Cellular signal or try to reset it.
732
732
  </Text>
733
733
  </View>
734
734
  </View>
@@ -823,7 +823,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
823
823
  ]
824
824
  }
825
825
  >
826
- Ngắt kết nối
826
+ Disconnected
827
827
  </Text>
828
828
  </View>
829
829
  <View
@@ -878,7 +878,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
878
878
  ]
879
879
  }
880
880
  >
881
- Gợi ý
881
+ Suggestions
882
882
  :
883
883
  </Text>
884
884
  </View>
@@ -926,7 +926,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
926
926
  ]
927
927
  }
928
928
  >
929
- Kiểm tra lại nguồn điện của thiết bị.
929
+ Check the power on your device.
930
930
  </Text>
931
931
  </View>
932
932
  <View
@@ -973,7 +973,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
973
973
  ]
974
974
  }
975
975
  >
976
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
976
+ Check the Wi-Fi/Cellular signal or try to reset it.
977
977
  </Text>
978
978
  </View>
979
979
  </View>
@@ -1068,7 +1068,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1068
1068
  ]
1069
1069
  }
1070
1070
  >
1071
- Ngắt kết nối
1071
+ Disconnected
1072
1072
  </Text>
1073
1073
  </View>
1074
1074
  <View
@@ -1123,7 +1123,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1123
1123
  ]
1124
1124
  }
1125
1125
  >
1126
- Gợi ý
1126
+ Suggestions
1127
1127
  :
1128
1128
  </Text>
1129
1129
  </View>
@@ -1171,7 +1171,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1171
1171
  ]
1172
1172
  }
1173
1173
  >
1174
- Kiểm tra lại nguồn điện của thiết bị.
1174
+ Check the power on your device.
1175
1175
  </Text>
1176
1176
  </View>
1177
1177
  <View
@@ -1218,7 +1218,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1218
1218
  ]
1219
1219
  }
1220
1220
  >
1221
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
1221
+ Check the Wi-Fi/Cellular signal or try to reset it.
1222
1222
  </Text>
1223
1223
  </View>
1224
1224
  </View>
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import renderer, { act } from 'react-test-renderer';
3
+ import { TouchableOpacity } from 'react-native';
4
+ import LoadingMessage from '../index';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = (visible, onClose, message) => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <LoadingMessage visible={visible} onClose={onClose} message={message} />
11
+ </SCProvider>
12
+ );
13
+
14
+ describe('Test DisplayChecking', () => {
15
+ let tree;
16
+ let visible = true;
17
+ let message = '';
18
+ let onClose = () => {};
19
+
20
+ test('create LoadingMessage', () => {
21
+ act(() => {
22
+ tree = renderer.create(wrapComponent(visible, message, onClose));
23
+ });
24
+ const instance = tree.root;
25
+ const textInputs = instance.findAllByType(TouchableOpacity);
26
+ expect(textInputs.length).toBe(1);
27
+ });
28
+ });
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import { ButtonPopup } from '../index';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../hooks/Common/useTranslations';
5
5
  import { IconOutline } from '@ant-design/icons-react-native';
6
6
  import Text from '../Text';
7
7
  import { Colors } from '../../configs';
@@ -14,6 +14,7 @@ const AlertSendConfirm = ({
14
14
  unit,
15
15
  station,
16
16
  }) => {
17
+ const t = useTranslations();
17
18
  return (
18
19
  <ButtonPopup
19
20
  rowButton
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { StyleSheet } from 'react-native';
3
3
  import { ButtonPopup } from '../index';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../hooks/Common/useTranslations';
5
5
  import { IconFill } from '@ant-design/icons-react-native';
6
6
  import Text from '../Text';
7
7
  import { Colors } from '../../configs';
@@ -16,6 +16,7 @@ const AlertSent = ({
16
16
  station,
17
17
  isDashboard,
18
18
  }) => {
19
+ const t = useTranslations();
19
20
  const data = useMemo(() => {
20
21
  if (isDashboard) {
21
22
  return {
@@ -34,7 +35,7 @@ const AlertSent = ({
34
35
  typeMain: 'alertBorder',
35
36
  };
36
37
  }
37
- }, [isDashboard]);
38
+ }, [isDashboard, t]);
38
39
 
39
40
  return (
40
41
  <ButtonPopup
@@ -1,6 +1,6 @@
1
1
  import React, { memo, useCallback } from 'react';
2
2
  import { View, Image, StyleSheet, TouchableOpacity } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../configs';
6
6
  import Text from '../../../commons/Text';
@@ -12,6 +12,7 @@ import { formatNumberCompact } from '../../../utils/Utils';
12
12
  import { axiosPost } from '../../../utils/Apis/axios';
13
13
 
14
14
  const CityItem = memo(({ item, onSelect }) => {
15
+ const t = useTranslations();
15
16
  const { id, name, icon, is_pin, count_pin } = item;
16
17
 
17
18
  const onPressPinPublicUnit = useCallback(async () => {
@@ -1,6 +1,6 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
  import Theme from '../../../configs/Theme';
5
5
 
6
6
  import { Colors } from '../../../configs';
@@ -8,6 +8,7 @@ import Text from '../../../commons/Text';
8
8
  import { useSCContextSelector } from '../../../context';
9
9
 
10
10
  const HeaderExplore = memo(() => {
11
+ const t = useTranslations();
11
12
  useSCContextSelector((state) => state.language);
12
13
  return (
13
14
  <View style={styles.container}>
@@ -1,11 +1,12 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, StyleSheet, TouchableOpacity } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../configs';
6
6
  import Text from '../../../commons/Text';
7
7
 
8
8
  const HeaderLabel = memo(({ title, style, onPress, seeMore }) => {
9
+ const t = useTranslations();
9
10
  return (
10
11
  <View style={[styles.labelHeader, style]}>
11
12
  <Text fontSize={14} color={Colors.Gray8} style={styles.textLineHeight}>
@@ -2,9 +2,17 @@ import SearchBox from '../index';
2
2
  import React from 'react';
3
3
  import { TouchableOpacity } from 'react-native';
4
4
  import renderer, { act } from 'react-test-renderer';
5
+ import { SCProvider } from '../../../../context';
6
+ import { mockSCStore } from '../../../../context/mockStore';
5
7
 
6
8
  const mockedNavigate = jest.fn();
7
9
 
10
+ const wrapComponent = () => (
11
+ <SCProvider initState={mockSCStore({})}>
12
+ <SearchBox isBack={true} />
13
+ </SCProvider>
14
+ );
15
+
8
16
  jest.mock('@react-navigation/native', () => {
9
17
  return {
10
18
  ...jest.requireActual('@react-navigation/native'),
@@ -18,7 +26,7 @@ describe('Test SearchBox', () => {
18
26
  let wrapper;
19
27
  test('SearchBox render', () => {
20
28
  act(() => {
21
- wrapper = renderer.create(<SearchBox isBack={true} />);
29
+ wrapper = renderer.create(wrapComponent());
22
30
  });
23
31
  const instance = wrapper.root;
24
32
  const button = instance.findByType(TouchableOpacity);
@@ -26,7 +34,6 @@ describe('Test SearchBox', () => {
26
34
  act(() => {
27
35
  button.props.onPress();
28
36
  });
29
- expect(wrapper.toJSON()).toMatchSnapshot();
30
37
  expect(mockedNavigate.mock.calls.length).toBe(1);
31
38
  });
32
39
  });
@@ -1,7 +1,7 @@
1
1
  import React, { memo, useCallback } from 'react';
2
2
  import { TextInput, View, StyleSheet, TouchableOpacity } from 'react-native';
3
3
  import { useNavigation } from '@react-navigation/native';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
5
5
 
6
6
  import { Colors } from '../../../configs';
7
7
  import Theme from '../../../configs/Theme';
@@ -9,6 +9,7 @@ import Search from '../../../../assets/images/Explore/Search.svg';
9
9
  import ArrowBack from '../../../../assets/images/Explore/ArrowBack.svg';
10
10
 
11
11
  const SearchBox = memo(({ isBack, style, onFocus }) => {
12
+ const t = useTranslations();
12
13
  const { goBack } = useNavigation();
13
14
  const onBack = useCallback(() => {
14
15
  goBack();
@@ -6,9 +6,17 @@ import axios from 'axios';
6
6
  import { API } from '../../../configs';
7
7
  import Pin from '../../../../assets/images/Explore/Pin.svg';
8
8
  import PinOutline from '../../../../assets/images/Explore/PinOutline.svg';
9
+ import { SCProvider } from '../../../context';
10
+ import { mockSCStore } from '../../../context/mockStore';
9
11
 
10
12
  const mockedDispatch = jest.fn();
11
13
 
14
+ const wrapComponent = (item, mockeSelect) => (
15
+ <SCProvider initState={mockSCStore({})}>
16
+ <CityItem item={item} onSelect={mockeSelect} />
17
+ </SCProvider>
18
+ );
19
+
12
20
  jest.mock('axios');
13
21
  jest.mock('react-redux', () => ({
14
22
  ...jest.requireActual('react-redux'),
@@ -38,9 +46,7 @@ describe('Test CityItem', () => {
38
46
  return response;
39
47
  });
40
48
  await act(async () => {
41
- tree = await renderer.create(
42
- <CityItem item={item} onSelect={mockeSelect} />
43
- );
49
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
44
50
  });
45
51
  const instance = tree.root;
46
52
  const buttons = instance.findAllByType(TouchableOpacity);
@@ -82,9 +88,7 @@ describe('Test CityItem', () => {
82
88
  return response;
83
89
  });
84
90
  await act(async () => {
85
- tree = await renderer.create(
86
- <CityItem item={item} onSelect={mockeSelect} />
87
- );
91
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
88
92
  });
89
93
  const instance = tree.root;
90
94
 
@@ -111,9 +115,7 @@ describe('Test CityItem', () => {
111
115
  return response;
112
116
  });
113
117
  await act(async () => {
114
- tree = await renderer.create(
115
- <CityItem item={item} onSelect={mockeSelect} />
116
- );
118
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
117
119
  });
118
120
  const instance = tree.root;
119
121
 
@@ -140,9 +142,7 @@ describe('Test CityItem', () => {
140
142
  return response;
141
143
  });
142
144
  await act(async () => {
143
- tree = await renderer.create(
144
- <CityItem item={item} onSelect={mockeSelect} />
145
- );
145
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
146
146
  });
147
147
  const instance = tree.root;
148
148
  const pin = instance.findAllByType(Pin);
@@ -164,9 +164,7 @@ describe('Test CityItem', () => {
164
164
  const mockeSelect = jest.fn();
165
165
 
166
166
  await act(async () => {
167
- tree = await renderer.create(
168
- <CityItem item={item} onSelect={mockeSelect} />
169
- );
167
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
170
168
  });
171
169
  const instance = tree.root;
172
170
  const buttons = instance.findAllByType(TouchableOpacity);
@@ -2,19 +2,25 @@ import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
3
  import { TouchableOpacity } from 'react-native';
4
4
  import HeaderLabel from '../HeaderLabel';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = (mockFunc) => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <HeaderLabel
11
+ seeMore={true}
12
+ title={'popular_locations'}
13
+ onPress={mockFunc}
14
+ />
15
+ </SCProvider>
16
+ );
5
17
 
6
18
  let tree;
7
19
  describe('Test HeaderLabel', () => {
8
- test('render HeaderLabel', () => {
20
+ test('render HeaderLabel', async () => {
9
21
  const mockFunc = jest.fn();
10
- act(() => {
11
- tree = renderer.create(
12
- <HeaderLabel
13
- seeMore={true}
14
- title={'popular_locations'}
15
- onPress={mockFunc}
16
- />
17
- );
22
+ await act(() => {
23
+ tree = renderer.create(wrapComponent(mockFunc));
18
24
  });
19
25
  const instance = tree.root;
20
26
  const button = instance.findAllByType(TouchableOpacity);
@@ -5,6 +5,7 @@ import { Colors } from '../../configs';
5
5
  import { Icon } from '@ant-design/react-native';
6
6
  import { useNavigation } from '@react-navigation/native';
7
7
  import styles from './Styles/HeaderCustomStyles';
8
+ import { useTranslations } from '../../hooks/Common/useTranslations';
8
9
 
9
10
  const HeaderCustom = ({
10
11
  title = '',
@@ -15,15 +16,25 @@ const HeaderCustom = ({
15
16
  isShowSeparator = false,
16
17
  isDisableRefresh = false,
17
18
  titleStyles,
19
+ isShowClose = false,
20
+ onGoBack,
18
21
  }) => {
22
+ const t = useTranslations();
19
23
  const { goBack } = useNavigation();
20
24
  const refMenuAction = useRef();
21
25
  const refAddAction = useRef();
22
26
  const handleAddAction = () => {};
27
+ // eslint-disable-next-line no-alert
28
+ const handleClose = () => alert(t('feature_under_development'));
23
29
  const handleShowMenuAction = () => showPopoverWithRef(refMenuAction);
30
+ const handleGoback = () => {
31
+ onGoBack && onGoBack();
32
+ goBack();
33
+ };
34
+
24
35
  return (
25
36
  <View style={[styles.wrap, isShowSeparator && styles.separator]}>
26
- <TouchableOpacity style={styles.buttonBack} onPress={goBack}>
37
+ <TouchableOpacity style={styles.buttonBack} onPress={handleGoback}>
27
38
  <Image source={Images.arrowBack} style={styles.iconBack} />
28
39
  </TouchableOpacity>
29
40
  <View style={styles.wrapTitle}>
@@ -65,6 +76,11 @@ const HeaderCustom = ({
65
76
  <Icon name={'plus'} size={27} color={Colors.Black} />
66
77
  </TouchableOpacity>
67
78
  )}
79
+ {isShowClose && (
80
+ <TouchableOpacity style={styles.buttonAdd} onPress={handleClose}>
81
+ <Icon name={'close'} size={24} color={Colors.Black} />
82
+ </TouchableOpacity>
83
+ )}
68
84
  </View>
69
85
  </View>
70
86
  );
@@ -1,6 +1,6 @@
1
1
  import { Colors } from '../../../configs';
2
- import { getStatusBarHeight } from '../../../configs/Constants';
3
2
  import { StyleSheet } from 'react-native';
3
+ import { getStatusBarHeight } from 'react-native-iphone-x-helper';
4
4
 
5
5
  export default StyleSheet.create({
6
6
  wrap: {
@@ -10,7 +10,7 @@ export default StyleSheet.create({
10
10
  paddingLeft: 7,
11
11
  paddingRight: 10,
12
12
  paddingBottom: 6,
13
- paddingTop: getStatusBarHeight(),
13
+ paddingTop: getStatusBarHeight() + 10,
14
14
  },
15
15
  separator: {
16
16
  borderBottomWidth: 0.5,
@@ -3,10 +3,18 @@ import { TouchableOpacity } from 'react-native';
3
3
  import { act } from '@testing-library/react-hooks';
4
4
  import { create } from 'react-test-renderer';
5
5
  import { HeaderCustom } from '..';
6
+ import { SCProvider } from '../../../context';
7
+ import { mockSCStore } from '../../../context/mockStore';
6
8
 
7
9
  const mockOnRefresh = jest.fn();
8
10
  const mockShowPopoverWithRef = jest.fn();
9
11
 
12
+ const wrapComponent = (defaultProps) => (
13
+ <SCProvider initState={mockSCStore({})}>
14
+ <HeaderCustom {...defaultProps} />
15
+ </SCProvider>
16
+ );
17
+
10
18
  describe('Test HeaderCustom', () => {
11
19
  let tree;
12
20
  let defaultProps = {
@@ -18,7 +26,7 @@ describe('Test HeaderCustom', () => {
18
26
 
19
27
  it('Test not render right', () => {
20
28
  act(() => {
21
- tree = create(<HeaderCustom {...defaultProps} />);
29
+ tree = create(wrapComponent(defaultProps));
22
30
  });
23
31
  const instance = tree.root;
24
32
  const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
@@ -28,7 +36,7 @@ describe('Test HeaderCustom', () => {
28
36
  it('Test render right', () => {
29
37
  defaultProps = { ...defaultProps, isShowRight: true };
30
38
  act(() => {
31
- tree = create(<HeaderCustom {...defaultProps} />);
39
+ tree = create(wrapComponent(defaultProps));
32
40
  });
33
41
  const instance = tree.root;
34
42
  const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
@@ -45,10 +53,10 @@ describe('Test HeaderCustom', () => {
45
53
 
46
54
  it('Test render without props', () => {
47
55
  act(() => {
48
- tree = create(<HeaderCustom />);
56
+ tree = create(wrapComponent(defaultProps));
49
57
  });
50
58
  const instance = tree.root;
51
59
  const TouchableOpacityElement = instance.findAllByType(TouchableOpacity);
52
- expect(TouchableOpacityElement).toHaveLength(1);
60
+ expect(TouchableOpacityElement).toHaveLength(3);
53
61
  });
54
62
  });
@@ -8,7 +8,7 @@ import Text from '../../commons/Text';
8
8
  import { Colors } from '../../configs';
9
9
 
10
10
  const default_height = 44;
11
- const paddingIos = getStatusBarHeight();
11
+ const paddingIos = getStatusBarHeight() + 10;
12
12
  export const title_height = 44;
13
13
  export const heightHeader = default_height + title_height + paddingIos;
14
14
 
@@ -46,7 +46,9 @@ const HeaderAni = memo(
46
46
  const titleMarginRight = rightComponent ? 80 : 0;
47
47
 
48
48
  return (
49
- <Animated.View style={[styles.container, { height: headerHeightAnim }]}>
49
+ <Animated.View
50
+ style={[styles.container, headerStyle, { height: headerHeightAnim }]}
51
+ >
50
52
  <View style={styles.header}>
51
53
  <TouchableOpacity style={styles.btnBack} onPress={onPressLeft}>
52
54
  <Icon name={'left'} size={27} color={Colors.Gray9} />
@@ -90,7 +92,8 @@ const styles = StyleSheet.create({
90
92
  header: {
91
93
  flexDirection: 'row',
92
94
  justifyContent: 'space-between',
93
- // zIndex: 2,
95
+ alignItems: 'center',
96
+ zIndex: 2,
94
97
  },
95
98
  btnBack: {
96
99
  height: default_height,
@@ -1,11 +1,19 @@
1
- import { IconFill } from '@ant-design/icons-react-native';
1
+ import { IconOutline, IconFill } from '@ant-design/icons-react-native';
2
2
  import React, { memo } from 'react';
3
3
  import { StyleSheet } from 'react-native';
4
4
  import { Colors } from '../../configs';
5
5
  import FImage from '../FImage';
6
6
 
7
+ // Priority: iconKit - icon - icon_outlined
7
8
  const IconComponent = memo(
8
- ({ icon, iconKit, isSendingCommand = false, size = 40, style }) => {
9
+ ({
10
+ icon_outlined,
11
+ icon,
12
+ iconKit,
13
+ isSendingCommand = false,
14
+ size = 40,
15
+ style,
16
+ }) => {
9
17
  let extraStyle = {};
10
18
  if (size) {
11
19
  extraStyle = {
@@ -18,13 +26,20 @@ const IconComponent = memo(
18
26
  source={{ uri: iconKit }}
19
27
  style={[styles.iconAction, extraStyle, style]}
20
28
  />
21
- ) : (
29
+ ) : icon ? (
22
30
  <IconFill
23
31
  name={icon}
24
32
  color={isSendingCommand ? Colors.TextGray : Colors.Green7}
25
33
  size={24}
26
34
  style={style}
27
35
  />
36
+ ) : (
37
+ <IconOutline
38
+ name={icon_outlined}
39
+ color={isSendingCommand ? Colors.TextGray : Colors.Green7}
40
+ size={24}
41
+ style={style}
42
+ />
28
43
  );
29
44
  }
30
45
  );