@eohjsc/react-native-smart-city 0.2.21 → 0.2.27

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 (404) 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/Illustrations.svg +83 -0
  8. package/assets/images/OneTap.svg +14 -0
  9. package/assets/images/OneTap@1x.svg +14 -0
  10. package/assets/images/Rearrange.svg +3 -0
  11. package/assets/images/Schedule.svg +39 -0
  12. package/assets/images/ValueChange.svg +49 -0
  13. package/index.js +2 -0
  14. package/package.json +14 -2
  15. package/src/Images/Common/ActiveButton.png +0 -0
  16. package/src/Images/Common/ActiveButton@2x.png +0 -0
  17. package/src/Images/Common/ActiveButton@3x.png +0 -0
  18. package/src/Images/Common/arrow-back.png +0 -0
  19. package/src/Images/Common/checked@2x.png +0 -0
  20. package/src/Images/Common/checked@3x.png +0 -0
  21. package/src/Images/Common/file.png +0 -0
  22. package/src/Images/Common/fullscreen.png +0 -0
  23. package/src/Images/Common/refresh.png +0 -0
  24. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
  25. package/src/commons/ActionGroup/OnOffTemplate/index.js +9 -4
  26. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +4 -3
  27. package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
  28. package/src/commons/ActionGroup/ThreeButtonTemplate.js +13 -6
  29. package/src/commons/ActionGroup/ThreeButtonTemplateStyle.js +1 -1
  30. package/src/commons/ActionGroup/TimerActionTemplate.js +158 -33
  31. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +294 -0
  32. package/src/commons/ActionGroup/__test__/NumberUpDownTemplateWithNullConfigValue.test.js +60 -0
  33. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
  34. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
  35. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -45
  36. package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
  37. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
  38. package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
  39. package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
  40. package/src/commons/ActionGroup/__test__/index.test.js +39 -107
  41. package/src/commons/ActionGroup/hooks/useDropdownAction.js +2 -1
  42. package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
  43. package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
  44. package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
  45. package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
  46. package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
  47. package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
  48. package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
  49. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
  50. package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
  51. package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
  52. package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
  53. package/src/commons/ActionTemplate/index.js +69 -0
  54. package/src/commons/AlertAction/__test__/AlertAction.test.js +6 -6
  55. package/src/commons/AlertAction/index.js +2 -0
  56. package/src/commons/Automate/ItemAddNewScriptActionStyles.js +38 -0
  57. package/src/commons/Automate/ItemAutomate.js +39 -0
  58. package/src/commons/Automate/ItemAutomateStyles.js +33 -0
  59. package/src/commons/Automate/ItemScriptAction.js +45 -0
  60. package/src/commons/Automate/ItemScriptActionStyles.js +42 -0
  61. package/src/commons/Automate/__test__/ItemAutomate.test.js +16 -0
  62. package/src/commons/Automate/__test__/ItemScriptAction.test.js +16 -0
  63. package/src/commons/BackDefault/__test__/BackDefault.test.js +21 -0
  64. package/src/commons/BottomScrollPicker/index.js +62 -0
  65. package/src/commons/BottomScrollPicker/styles.js +13 -0
  66. package/src/commons/BottomSheet/index.js +41 -0
  67. package/src/commons/BottomSheet/styles.js +37 -0
  68. package/src/commons/Button/index.js +6 -1
  69. package/src/commons/ButtonPopup/__test__/__snapshots__/ButtonPopup.test.js.snap +2 -0
  70. package/src/commons/ButtonPopup/index.js +2 -0
  71. package/src/commons/Calendar/index.js +72 -0
  72. package/src/commons/Calendar/styles.js +11 -0
  73. package/src/commons/CameraDevice/index.js +2 -1
  74. package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
  75. package/src/commons/ChartLoading/index.js +2 -1
  76. package/src/commons/DateTimeRangeChange/index.js +2 -1
  77. package/src/commons/Device/ConnectedViewHeader.js +3 -1
  78. package/src/commons/Device/DeviceAlertStatus.js +5 -2
  79. package/src/commons/Device/DisconnectedView.js +34 -26
  80. package/src/commons/Device/Emergency/EmergencyButton.js +2 -1
  81. package/src/commons/Device/Emergency/EmergencyDetail.js +2 -1
  82. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
  83. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
  84. package/src/commons/Device/FlatListItems.js +3 -2
  85. package/src/commons/Device/FooterInfo.js +2 -1
  86. package/src/commons/Device/HistoryChart.js +2 -1
  87. package/src/commons/Device/ItemAddNew/index.js +8 -3
  88. package/src/commons/Device/SensorConnectedStatus.js +2 -1
  89. package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
  90. package/src/commons/Device/WindDirection/Compass/index.js +1 -1
  91. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
  92. package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
  93. package/src/commons/Device/WindSpeed/LinearChart/index.js +2 -1
  94. package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
  95. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -5
  96. package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
  97. package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
  98. package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
  99. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
  100. package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
  101. package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
  102. package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -1
  103. package/src/commons/EmergencyButton/AlertSent.js +3 -2
  104. package/src/commons/Explore/CityItem/index.js +2 -1
  105. package/src/commons/Explore/HeaderExplore/index.js +2 -1
  106. package/src/commons/Explore/HeaderLabel/index.js +2 -1
  107. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
  108. package/src/commons/Explore/SearchBox/index.js +2 -1
  109. package/src/commons/Explore/__test__/CityItem.test.js +13 -15
  110. package/src/commons/Explore/__test__/HeaderExplore.test.js +11 -7
  111. package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
  112. package/src/commons/Explore/__test__/LocationItem.test.js +31 -0
  113. package/src/commons/Header/HeaderCustom.js +22 -2
  114. package/src/commons/Header/Styles/HeaderCustomStyles.js +2 -2
  115. package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
  116. package/src/commons/HeaderAni/index.js +36 -5
  117. package/src/commons/HorizontalPicker/index.js +134 -0
  118. package/src/commons/HorizontalPicker/styles.js +56 -0
  119. package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
  120. package/src/commons/ImagePicker/index.js +3 -1
  121. package/src/commons/MediaPlayer/index.js +2 -1
  122. package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
  123. package/src/commons/MediaPlayerDetail/index.js +4 -1
  124. package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
  125. package/src/commons/MenuActionAddnew/index.js +2 -1
  126. package/src/commons/Modal/ModalBottom.js +51 -0
  127. package/src/commons/Modal/ModalFullVideo.js +2 -1
  128. package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
  129. package/src/commons/Modal/__test__/ModalBottom.test.js +39 -0
  130. package/src/commons/Modal/index.js +2 -1
  131. package/src/commons/NavBar/index.js +2 -2
  132. package/src/commons/RowItem/__test__/RowItem.test.js +16 -0
  133. package/src/commons/RowItem/index.js +61 -0
  134. package/src/commons/RowItem/styles.js +53 -0
  135. package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
  136. package/src/commons/SelectActionCard/index.js +30 -0
  137. package/src/commons/Sharing/DevicePermissionsCheckbox.js +2 -1
  138. package/src/commons/Sharing/MemberList.js +3 -1
  139. package/src/commons/Sharing/RowMember.js +3 -2
  140. package/src/commons/Sharing/StationDevicePermissions.js +2 -1
  141. package/src/commons/Sharing/WrapHeaderScrollable.js +78 -74
  142. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
  143. package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
  144. package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
  145. package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
  146. package/src/commons/SubUnit/OneTap/ItemOneTap.js +101 -0
  147. package/src/commons/SubUnit/OneTap/ItemOneTapStyles.js +41 -0
  148. package/src/commons/SubUnit/OneTap/OneTapStyles.js +36 -0
  149. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +195 -0
  150. package/src/commons/SubUnit/OneTap/index.js +39 -0
  151. package/src/commons/SubUnit/ShortDetail.js +11 -6
  152. package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
  153. package/src/commons/Today/__test__/Today.test.js +9 -1
  154. package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
  155. package/src/commons/Today/index.js +2 -1
  156. package/src/commons/Unit/SharedUnit.js +2 -1
  157. package/src/commons/Unit/__test__/SharedUnit.test.js +330 -0
  158. package/src/commons/UnitSummary/AirQuality/SegmentedRoundDisplay/index.js +1 -2
  159. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
  160. package/src/commons/UnitSummary/AirQuality/index.js +5 -120
  161. package/src/commons/UnitSummary/AirQuality/styles.js +112 -0
  162. package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -1
  163. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
  164. package/src/commons/WheelDateTimePicker/Picker.js +57 -0
  165. package/src/commons/WheelDateTimePicker/index.js +168 -0
  166. package/src/commons/WheelDateTimePicker/styles.js +21 -0
  167. package/src/commons/index.js +2 -0
  168. package/src/configs/API.js +29 -0
  169. package/src/configs/Colors.js +1 -0
  170. package/src/configs/Constants.js +61 -0
  171. package/src/configs/Images.js +1 -0
  172. package/src/configs/SCConfig.js +7 -0
  173. package/src/configs/Theme.js +20 -0
  174. package/src/context/SCContext.tsx +9 -39
  175. package/src/context/actionType.ts +11 -0
  176. package/src/context/mockStore.ts +51 -0
  177. package/src/context/reducer.ts +23 -0
  178. package/src/hooks/Common/__test__/useStatusbar.test.js +28 -0
  179. package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
  180. package/src/hooks/Common/index.js +2 -0
  181. package/src/hooks/Common/useGetIdUser.js +9 -0
  182. package/src/hooks/Common/useTranslations.ts +34 -0
  183. package/src/iot/Monitor.js +2 -1
  184. package/src/iot/RemoteControl/Bluetooth.js +2 -6
  185. package/src/iot/RemoteControl/GoogleHome.js +1 -1
  186. package/src/iot/RemoteControl/Internet.js +1 -1
  187. package/src/iot/RemoteControl/LG.js +57 -15
  188. package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -5
  189. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -3
  190. package/src/iot/RemoteControl/__test__/Internet.test.js +1 -8
  191. package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
  192. package/src/iot/RemoteControl/index.js +1 -1
  193. package/src/iot/states.js +1 -0
  194. package/src/navigations/AutomateStack.js +45 -0
  195. package/src/navigations/SharedStack.js +2 -1
  196. package/src/navigations/UnitStack.js +86 -6
  197. package/src/navigations/utils.js +8 -0
  198. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
  199. package/src/screens/AQIGuide/index.js +2 -2
  200. package/src/screens/ActivityLog/__test__/index.test.js +14 -39
  201. package/src/screens/ActivityLog/index.js +2 -1
  202. package/src/screens/AddCommon/SelectSubUnit.js +5 -4
  203. package/src/screens/AddCommon/SelectUnit.js +3 -2
  204. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
  205. package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
  206. package/src/screens/AddLocationMaps/index.js +2 -1
  207. package/src/screens/AddNewAction/Components/LoadingSelectAction.js +40 -0
  208. package/src/screens/AddNewAction/Components/index.js +3 -0
  209. package/src/screens/AddNewAction/Device/DeviceStyles.js +43 -0
  210. package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
  211. package/src/screens/AddNewAction/Device/index.js +33 -0
  212. package/src/screens/AddNewAction/SelectAction.js +237 -0
  213. package/src/screens/AddNewAction/SelectSensorDevices.js +150 -0
  214. package/src/screens/AddNewAction/SetupSensor.js +221 -0
  215. package/src/screens/AddNewAction/Styles/SelectActionStyles.js +62 -0
  216. package/src/screens/AddNewAction/Styles/SelectSensorDevicesStyles.js +36 -0
  217. package/src/screens/AddNewAction/Styles/SetupSensorStyles.js +76 -0
  218. package/src/screens/AddNewAction/__test__/SelectAction.test.js +153 -0
  219. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +191 -0
  220. package/src/screens/AddNewAction/__test__/SetupSensor.test.js +125 -0
  221. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +112 -0
  222. package/src/screens/AddNewAutoSmart/index.js +113 -0
  223. package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
  224. package/src/screens/AddNewDevice/ConnectDevices.js +2 -1
  225. package/src/screens/AddNewDevice/ConnectingDevices.js +2 -1
  226. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -13
  227. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -7
  228. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -6
  229. package/src/screens/AddNewDevice/hooks/useStateAlertRename.js +2 -1
  230. package/src/screens/AddNewDevice/index.js +2 -1
  231. package/src/screens/AddNewGateway/ConnectedGateway.js +2 -1
  232. package/src/screens/AddNewGateway/ConnectingGateway.js +99 -24
  233. package/src/screens/AddNewGateway/ConnectingGatewayStyles.js +92 -0
  234. package/src/screens/AddNewGateway/SetupGatewayWifi.js +3 -2
  235. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -72
  236. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -4
  237. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -10
  238. package/src/screens/AddNewGateway/hooks/useStateAlertRename.js +2 -1
  239. package/src/screens/AddNewGateway/index.js +2 -1
  240. package/src/screens/AddNewOneTap/AddNewOneTapStyles.js +44 -0
  241. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +130 -0
  242. package/src/screens/AddNewOneTap/index.js +83 -0
  243. package/src/screens/AllCamera/__test__/index.test.js +103 -0
  244. package/src/screens/AllCamera/index.js +2 -1
  245. package/src/screens/Automate/Components/Loading.js +64 -0
  246. package/src/screens/Automate/Styles/indexStyles.js +64 -0
  247. package/src/screens/Automate/__test__/Loading.test.js +16 -0
  248. package/src/screens/Automate/__test__/index.test.js +93 -0
  249. package/src/screens/Automate/index.js +148 -0
  250. package/src/screens/Device/HeaderDevice/styles.js +2 -2
  251. package/src/screens/Device/__test__/detail.test.js +90 -18
  252. package/src/screens/Device/detail.js +73 -35
  253. package/src/screens/Device/hooks/useCountUp.js +4 -0
  254. package/src/screens/Device/hooks/useEmergencyButton.js +3 -2
  255. package/src/screens/Device/styles.js +5 -1
  256. package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
  257. package/src/screens/DeviceInfo/index.js +2 -1
  258. package/src/screens/EditActionsList/Styles/indexStyles.js +84 -0
  259. package/src/screens/EditActionsList/index.js +186 -0
  260. package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +3 -2
  261. package/src/screens/EmergencyContacts/EmergencyContactsList.js +9 -2
  262. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +2 -1
  263. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -18
  264. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -23
  265. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
  266. package/src/screens/EmergencyContacts/hook.js +3 -2
  267. package/src/screens/Explore/index.js +3 -2
  268. package/src/screens/GuestInfo/__test__/index.test.js +176 -0
  269. package/src/screens/GuestInfo/components/AccessScheduleItem.js +32 -0
  270. package/src/screens/GuestInfo/components/AccessScheduleSheet.js +204 -0
  271. package/src/screens/GuestInfo/components/HeaderGuestInfo.js +36 -0
  272. package/src/screens/GuestInfo/components/RecurringDetail.js +106 -0
  273. package/src/screens/GuestInfo/components/RowGuestInfo.js +31 -0
  274. package/src/screens/GuestInfo/components/TemporaryDetail.js +53 -0
  275. package/src/screens/GuestInfo/constant.js +59 -0
  276. package/src/screens/GuestInfo/index.js +150 -0
  277. package/src/screens/GuestInfo/styles/AccessScheduleDetailStyles.js +31 -0
  278. package/src/screens/GuestInfo/styles/AccessScheduleItemStyles.js +22 -0
  279. package/src/screens/GuestInfo/styles/HeaderGuestInfoStyles.js +31 -0
  280. package/src/screens/GuestInfo/styles/indexStyles.js +38 -0
  281. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
  282. package/src/screens/ManageAccess/hooks/index.js +4 -0
  283. package/src/screens/ManageAccess/index.js +49 -20
  284. package/src/screens/ManageAccess/styles/ManageAccessStyles.js +3 -0
  285. package/src/screens/PlayBackCamera/Timer.js +1 -1
  286. package/src/screens/PlayBackCamera/index.js +9 -5
  287. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
  288. package/src/screens/ScanChipQR/components/QRScan/index.js +2 -1
  289. package/src/screens/ScriptDetail/Styles/indexStyles.js +157 -0
  290. package/src/screens/ScriptDetail/__test__/index.test.js +119 -0
  291. package/src/screens/ScriptDetail/hooks/index.js +55 -0
  292. package/src/screens/ScriptDetail/index.js +344 -0
  293. package/src/screens/SelectUnit/Styles/indexStyles.js +55 -0
  294. package/src/screens/SelectUnit/__test__/index.test.js +85 -0
  295. package/src/screens/SelectUnit/index.js +100 -0
  296. package/src/screens/SetSchedule/__test__/index.test.js +97 -0
  297. package/src/screens/SetSchedule/components/RepeatOptionsPopup.js +56 -0
  298. package/src/screens/SetSchedule/components/RowItem.js +27 -0
  299. package/src/screens/SetSchedule/components/SelectWeekday.js +65 -0
  300. package/src/screens/SetSchedule/index.js +139 -0
  301. package/src/screens/SetSchedule/styles/RepeatOptionsPopupStyles.js +22 -0
  302. package/src/screens/SetSchedule/styles/RowItemStyles.js +29 -0
  303. package/src/screens/SetSchedule/styles/SelectWeekdayStyles.js +26 -0
  304. package/src/screens/SetSchedule/styles/indexStyles.js +22 -0
  305. package/src/screens/SharedUnit/TabHeader.js +2 -1
  306. package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
  307. package/src/screens/SharedUnit/index.js +3 -2
  308. package/src/screens/Sharing/MemberList.js +2 -1
  309. package/src/screens/Sharing/SelectPermission.js +2 -1
  310. package/src/screens/Sharing/SelectUser.js +3 -2
  311. package/src/screens/Sharing/__test__/MemberList.test.js +25 -28
  312. package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
  313. package/src/screens/Sharing/__test__/SelectUser.test.js +33 -15
  314. package/src/screens/Sharing/hooks/index.js +22 -17
  315. package/src/screens/SubUnit/AddSubUnit.js +3 -2
  316. package/src/screens/SubUnit/Detail.js +5 -4
  317. package/src/screens/SubUnit/EditSubUnit.js +274 -0
  318. package/src/screens/SubUnit/EditSubUnitStyles.js +119 -0
  319. package/src/screens/SubUnit/ManageSubUnit.js +114 -371
  320. package/src/screens/SubUnit/ManageSubUnitStyles.js +40 -0
  321. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -11
  322. package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
  323. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +427 -0
  324. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +51 -384
  325. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +85 -0
  326. package/src/screens/SubUnit/hooks/useManageSubUnit.js +35 -0
  327. package/src/screens/SyncLGDevice/AddLGDevice.js +3 -2
  328. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
  329. package/src/screens/TDSGuide/index.js +2 -1
  330. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
  331. package/src/screens/UVIndexGuide/index.js +2 -1
  332. package/src/screens/Unit/AddMenu.js +3 -2
  333. package/src/screens/Unit/Detail.js +66 -20
  334. package/src/screens/Unit/ManageUnit/index.js +4 -3
  335. package/src/screens/Unit/ManageUnit.js +15 -4
  336. package/src/screens/Unit/MoreMenu.js +3 -2
  337. package/src/screens/Unit/SelectLocation.js +8 -2
  338. package/src/screens/Unit/SelectLocationStyles.js +11 -0
  339. package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
  340. package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
  341. package/src/screens/Unit/__test__/Detail.test.js +92 -33
  342. package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
  343. package/src/screens/Unit/components/Header/index.js +2 -1
  344. package/src/screens/Unit/components/ListMyAllUnit/index.js +2 -1
  345. package/src/screens/Unit/components/MyUnit/index.js +2 -1
  346. package/src/screens/Unit/components/SearchLocation/__test__/RowLocation.test.js +36 -0
  347. package/src/screens/Unit/components/SearchLocation/index.js +2 -1
  348. package/src/screens/Unit/components/SharedUnit/index.js +2 -1
  349. package/src/screens/Unit/components/__test__/MyUnit.test.js +22 -72
  350. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +32 -0
  351. package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
  352. package/src/screens/UnitSummary/__test__/index.test.js +12 -4
  353. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
  354. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -1
  355. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
  356. package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -1
  357. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
  358. package/src/screens/UnitSummary/components/Temperature/index.js +2 -1
  359. package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -1
  360. package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
  361. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
  362. package/src/screens/UnitSummary/components/UvIndex/index.js +2 -1
  363. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
  364. package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -1
  365. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
  366. package/src/screens/UnitSummary/components/__test__/UnitSummary.test.js +67 -0
  367. package/src/screens/UnitSummary/components/__test__/index.test.js +48 -0
  368. package/src/screens/UnitSummary/components/index.js +1 -37
  369. package/src/screens/UnitSummary/components/indexstyles.js +39 -0
  370. package/src/screens/UnitSummary/index.js +2 -1
  371. package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
  372. package/src/screens/WaterQualityGuide/index.js +2 -1
  373. package/src/utils/Apis/axios.js +0 -4
  374. package/src/utils/Converter/array.js +4 -0
  375. package/src/utils/Converter/time.js +29 -4
  376. package/src/utils/I18n/index.ts +6 -0
  377. package/src/utils/I18n/translations/en.json +77 -5
  378. package/src/utils/I18n/translations/vi.json +73 -3
  379. package/src/utils/I18n/translations.ts +45 -0
  380. package/src/utils/Route/index.js +13 -0
  381. package/src/utils/__test__/InitData.test.js +20 -0
  382. package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
  383. package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
  384. package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
  385. package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
  386. package/src/commons/Header/__test__/Header.test.js +0 -24
  387. package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
  388. package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
  389. package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
  390. package/src/iot/RemoteControl/__test__/index.test.js +0 -101
  391. package/src/iot/__test__/Monitor.test.js +0 -119
  392. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
  393. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
  394. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
  395. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -358
  396. package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  397. package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
  398. package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  399. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
  400. package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
  401. package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
  402. package/src/utils/Converter/__test__/time.test.js +0 -126
  403. package/src/utils/I18n/index.js +0 -19
  404. package/src/utils/I18n/index.test.js +0 -7
@@ -3,11 +3,12 @@ import { act, create } from 'react-test-renderer';
3
3
  import axios from 'axios';
4
4
 
5
5
  import { ToastBottomHelper } from '../../../utils/Utils';
6
- import { createFormData } from '../../../utils/Apis/axios';
7
6
  import API from '../../../configs/API';
8
7
  import { TESTID } from '../../../configs/Constants';
9
8
 
10
9
  import ManageUnit from '../ManageUnit';
10
+ import { SCProvider } from '../../../context';
11
+ import { mockSCStore } from '../../../context/mockStore';
11
12
 
12
13
  jest.mock('axios');
13
14
 
@@ -23,6 +24,12 @@ jest.mock('../../../hooks/Common', () => {
23
24
  };
24
25
  });
25
26
 
27
+ const wrapComponent = (route) => (
28
+ <SCProvider initState={mockSCStore({})}>
29
+ <ManageUnit route={route} />
30
+ </SCProvider>
31
+ );
32
+
26
33
  describe('Test Manage Unit', () => {
27
34
  let tree;
28
35
  let route = {
@@ -71,7 +78,7 @@ describe('Test Manage Unit', () => {
71
78
 
72
79
  test('render ManageUnit', async () => {
73
80
  await act(async () => {
74
- tree = create(<ManageUnit route={route} />);
81
+ tree = create(wrapComponent(route));
75
82
  });
76
83
 
77
84
  const instance = tree.root;
@@ -92,7 +99,7 @@ describe('Test Manage Unit', () => {
92
99
 
93
100
  test('rename Unit', async () => {
94
101
  await act(async () => {
95
- tree = create(<ManageUnit route={route} />);
102
+ tree = create(wrapComponent(route));
96
103
  });
97
104
 
98
105
  const instance = tree.root;
@@ -120,20 +127,13 @@ describe('Test Manage Unit', () => {
120
127
  await bottomButton.props.onPress();
121
128
  });
122
129
 
123
- const formData = createFormData('', ['background']);
124
- const header = { name: inputRename[0].props.defaultValue };
125
-
126
- expect(axios.patch).toBeCalledWith(
127
- API.UNIT.MANAGE_UNIT(1),
128
- formData,
129
- header
130
- );
130
+ expect(axios.patch).toBeCalled();
131
131
  });
132
132
 
133
133
  test('remove Unit success', async () => {
134
134
  const spyToast = jest.spyOn(ToastBottomHelper, 'success');
135
135
  await act(async () => {
136
- tree = create(<ManageUnit route={route} />);
136
+ tree = create(wrapComponent(route));
137
137
  });
138
138
 
139
139
  const instance = tree.root;
@@ -166,7 +166,7 @@ describe('Test Manage Unit', () => {
166
166
  });
167
167
 
168
168
  expect(axios.delete).toBeCalledWith(API.UNIT.MANAGE_UNIT(1));
169
- expect(mockedDispatch).toBeCalled();
169
+ expect(mockedDispatch).not.toBeCalled();
170
170
  expect(spyToast).toBeCalled();
171
171
  spyToast.mockReset();
172
172
  spyToast.mockRestore();
@@ -175,7 +175,7 @@ describe('Test Manage Unit', () => {
175
175
  test('rename Unit sucess', async () => {
176
176
  const spyToast = jest.spyOn(ToastBottomHelper, 'success');
177
177
  await act(async () => {
178
- tree = create(<ManageUnit route={route} />);
178
+ tree = create(wrapComponent(route));
179
179
  });
180
180
 
181
181
  const instance = tree.root;
@@ -206,16 +206,9 @@ describe('Test Manage Unit', () => {
206
206
  await bottomButton.props.onPress();
207
207
  });
208
208
 
209
- const formData = createFormData('', ['background']);
210
- const header = { name: inputRename[0].props.defaultValue };
211
-
212
- expect(axios.patch).toBeCalledWith(
213
- API.UNIT.MANAGE_UNIT(1),
214
- formData,
215
- header
216
- );
209
+ expect(axios.patch).toBeCalled();
217
210
 
218
- expect(mockedDispatch).toBeCalled();
211
+ expect(mockedDispatch).not.toBeCalled();
219
212
  expect(spyToast).toBeCalled();
220
213
  spyToast.mockReset();
221
214
  spyToast.mockRestore();
@@ -3,7 +3,7 @@ import { Dimensions, View, TouchableOpacity, StyleSheet } from 'react-native';
3
3
  import Popover from 'react-native-popover-view';
4
4
  import Modal from 'react-native-modal';
5
5
  import { IconOutline } from '@ant-design/icons-react-native';
6
- import { t } from 'i18n-js';
6
+ import { useTranslations } from '../../../../hooks/Common/useTranslations';
7
7
 
8
8
  import { Colors } from '../../../../configs';
9
9
  import Text from '../../../../commons/Text';
@@ -30,6 +30,7 @@ const HeaderComponent = ({
30
30
  fixedHeight, // when height of header is fixed
31
31
  style,
32
32
  }) => {
33
+ const t = useTranslations();
33
34
  const popoverRef = useRef();
34
35
  const [menu, setMenu] = useState(false);
35
36
  const [showModal, setShowModal] = useState(false);
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react';
2
2
  import { View, Image, StyleSheet, Animated, ScrollView } from 'react-native';
3
3
  import { IconOutline } from '@ant-design/icons-react-native';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../../../hooks/Common/useTranslations';
5
5
 
6
6
  import { Colors, Images } from '../../../../configs';
7
7
  import Text from '../../../../commons/Text';
@@ -11,6 +11,7 @@ import { colorOpacity } from '../../../../utils/Converter/color';
11
11
  const AnimatedScrollView = Animated.createAnimatedComponent(ScrollView);
12
12
 
13
13
  const ListMyAllUnit = ({ unitItems }) => {
14
+ const t = useTranslations();
14
15
  // eslint-disable-next-line no-unused-vars
15
16
  const [scrollY, setScrollY] = useState(new Animated.Value(0));
16
17
 
@@ -8,7 +8,7 @@ import {
8
8
  } from 'react-native';
9
9
  import Carousel from 'react-native-snap-carousel';
10
10
  import { useNavigation } from '@react-navigation/native';
11
- import { t } from 'i18n-js';
11
+ import { useTranslations } from '../../../../hooks/Common/useTranslations';
12
12
 
13
13
  import { Colors, Images } from '../../../../configs';
14
14
  import { TESTID } from '../../../../configs/Constants';
@@ -20,6 +20,7 @@ import { colorOpacity } from '../../../../utils/Converter/color';
20
20
  let screenWidth = Dimensions.get('window').width;
21
21
 
22
22
  const MyUnit = ({ myUnits }) => {
23
+ const t = useTranslations();
23
24
  const navigation = useNavigation();
24
25
  const carouselItems = useMemo(() => myUnits, [myUnits]);
25
26
  const goToDetail = useCallback(
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { TouchableOpacity } from 'react-native';
3
+ import { act, create } from 'react-test-renderer';
4
+ import RowLocation from '../RowLocation';
5
+ import { SCProvider } from '../../../../../context';
6
+ import { mockSCStore } from '../../../../../context/mockStore';
7
+
8
+ const mockFunc = jest.fn();
9
+
10
+ const wrapComponent = (item, onPress) => (
11
+ <SCProvider initState={mockSCStore({})}>
12
+ <RowLocation item={item} onPress={onPress} />
13
+ </SCProvider>
14
+ );
15
+
16
+ describe('Test RowLocation', () => {
17
+ let item;
18
+ beforeEach(() => {
19
+ item = {
20
+ description: '',
21
+ };
22
+ });
23
+ let tree;
24
+
25
+ test('create RowLocation', async () => {
26
+ await act(() => {
27
+ tree = create(wrapComponent(item, mockFunc));
28
+ });
29
+ const instance = tree.root;
30
+ const button = instance.findByType(TouchableOpacity);
31
+ act(() => {
32
+ button.props.onPress();
33
+ });
34
+ expect(mockFunc).toHaveBeenCalled();
35
+ });
36
+ });
@@ -1,12 +1,13 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, TextInput } from 'react-native';
3
3
  import { IconOutline } from '@ant-design/icons-react-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 styles from './SearchBarLocationStyles';
8
8
 
9
9
  const SearchBarLocation = memo(({ input, onTextInput }) => {
10
+ const t = useTranslations();
10
11
  return (
11
12
  <View style={styles.container}>
12
13
  <IconOutline
@@ -1,6 +1,6 @@
1
1
  import React, { Fragment, useCallback } from 'react';
2
2
  import { View, Image, TouchableOpacity } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../../hooks/Common/useTranslations';
4
4
  import { IconOutline, IconFill } from '@ant-design/icons-react-native';
5
5
 
6
6
  import { API, Colors, Images } from '../../../../configs';
@@ -18,6 +18,7 @@ const SharedUnit = ({
18
18
  index,
19
19
  isOptions = true,
20
20
  }) => {
21
+ const t = useTranslations();
21
22
  const { unit } = item;
22
23
  const goToDetail = useCallback(() => {
23
24
  navigation.navigate(Routes.UnitStack, {
@@ -1,85 +1,35 @@
1
1
  import React from 'react';
2
- import renderer, { act } from 'react-test-renderer';
3
-
2
+ import Carousel from 'react-native-snap-carousel';
3
+ import { act, create } from 'react-test-renderer';
4
4
  import MyUnit from '../MyUnit';
5
- import { TESTID } from '../../../../configs/Constants';
6
-
7
- const mockedNavigate = jest.fn();
8
- jest.mock('@react-navigation/native', () => {
5
+ import { SCProvider } from '../../../../context';
6
+ import { mockSCStore } from '../../../../context/mockStore';
7
+
8
+ const wrapComponent = (units) => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <MyUnit myUnits={units} />
11
+ </SCProvider>
12
+ );
13
+ jest.mock('react', () => {
9
14
  return {
10
- ...jest.requireActual('@react-navigation/native'),
11
- useNavigation: () => ({
12
- navigate: mockedNavigate,
13
- }),
15
+ ...jest.requireActual('react'),
16
+ memo: (x) => x,
14
17
  };
15
18
  });
16
19
 
17
20
  describe('Test MyUnit', () => {
18
21
  let tree;
19
22
 
20
- const getElement = (instance) => {
21
- const goToDetail = instance.findAll(
22
- (item) => item.props.testID === TESTID.MY_UNIT_GO_TO_DETAIL
23
- );
24
- const textNoUnit = instance.findAll(
25
- (item) => item.props.testID === TESTID.MY_UNIT_NO_UNIT
26
- );
27
- return { goToDetail, textNoUnit };
28
- };
29
-
30
- const myUnits = [
31
- {
32
- abstract_sensors: [
33
- {
34
- action: null,
35
- action2: null,
36
- chip_id: 2,
37
- description: null,
38
- icon: '',
39
- id: 2,
40
- name: 'Emergency Button',
41
- quick_action: null,
42
- remote_control_options: {},
43
- station: { id: 2, name: 'Cat Station' },
44
- station_name: 'Cat Station',
45
- status: null,
46
- status2: null,
47
- },
48
- ],
49
- background: '',
50
- id: 2,
51
- name: 'Cat Unit',
52
- },
53
- ];
54
-
55
- test('create MyUnit no Unit', () => {
56
- const myUnitsNone = [];
57
- act(() => {
58
- tree = renderer.create(<MyUnit myUnits={myUnitsNone} />);
59
- });
60
- const instance = tree.root;
61
- const { textNoUnit } = getElement(instance);
62
- expect(textNoUnit[0]).toBeDefined();
63
- });
64
-
65
- test('create MyUnit with Unit', () => {
66
- act(() => {
67
- tree = renderer.create(<MyUnit myUnits={myUnits} />);
23
+ it('render MyUnit carousel', async () => {
24
+ const units = [
25
+ { id: 1, name: '', abstract_sensors: [{ id: 1, name: '' }] },
26
+ { id: 2, name: '', abstract_sensors: [{ id: 1, name: '' }] },
27
+ ];
28
+ await act(() => {
29
+ tree = create(wrapComponent(units));
68
30
  });
69
31
  const instance = tree.root;
70
- const { textNoUnit } = getElement(instance);
71
- expect(textNoUnit[0]).not.toBeDefined();
72
- });
73
-
74
- test('go to detail MyUnit', () => {
75
- act(() => {
76
- tree = renderer.create(<MyUnit myUnits={myUnits} />);
77
- });
78
- const instance = tree.root;
79
- const { goToDetail } = getElement(instance);
80
- act(() => {
81
- goToDetail[0].props.onPress();
82
- });
83
- expect(mockedNavigate).toBeCalled();
32
+ const carousel = instance.findAllByType(Carousel);
33
+ expect(carousel).toHaveLength(1);
84
34
  });
85
35
  });
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { act, create } from 'react-test-renderer';
4
+ import MyUnitDevice from '../MyUnitDevice';
5
+
6
+ describe('Test MyUnitDevice', () => {
7
+ let tree;
8
+
9
+ it('Test render with status', async () => {
10
+ await act(() => {
11
+ tree = create(
12
+ <MyUnitDevice
13
+ sensor={{ status: 'Ok', name: 'Test', station_name: '' }}
14
+ />
15
+ );
16
+ });
17
+ const instance = tree.root;
18
+ const Views = instance.findAllByType(View);
19
+ expect(Views).toHaveLength(5);
20
+ });
21
+
22
+ it('Test render without status', async () => {
23
+ await act(() => {
24
+ tree = create(
25
+ <MyUnitDevice sensor={{ name: 'Test', station_name: '' }} />
26
+ );
27
+ });
28
+ const instance = tree.root;
29
+ const Views = instance.findAllByType(View);
30
+ expect(Views).toHaveLength(5);
31
+ });
32
+ });
@@ -7,9 +7,18 @@ import SharedUnit from '../SharedUnit';
7
7
  import { TESTID } from '../../../../configs/Constants';
8
8
  import { API } from '../../../../configs';
9
9
  import Routes from '../../../../utils/Route';
10
+ import { SCProvider } from '../../../../context';
11
+ import { mockSCStore } from '../../../../context/mockStore';
10
12
 
11
13
  jest.mock('axios');
12
14
 
15
+ const wrapComponent = (item, navigation) => (
16
+ <SCProvider initState={mockSCStore({})}>
17
+ <SharedUnit item={item} navigation={navigation} />
18
+ );
19
+ </SCProvider>
20
+ );
21
+
13
22
  const mockNavigate = jest.fn();
14
23
  jest.mock('@react-navigation/native', () => {
15
24
  return {
@@ -48,7 +57,7 @@ describe('Test SharedUnit', () => {
48
57
  const navigation = useNavigation();
49
58
 
50
59
  await act(async () => {
51
- tree = await create(<SharedUnit item={item} navigation={navigation} />);
60
+ tree = await create(wrapComponent(item, navigation));
52
61
  });
53
62
  const instance = tree.root;
54
63
  const touchSharedUnit = instance.find(
@@ -93,7 +102,7 @@ describe('Test SharedUnit', () => {
93
102
  item.is_star = true;
94
103
 
95
104
  await act(async () => {
96
- tree = await create(<SharedUnit item={item} navigation={navigation} />);
105
+ tree = await create(wrapComponent(item, navigation));
97
106
  });
98
107
  const instance = tree.root;
99
108
  const iconRemovePinSharedUnit = instance.find(
@@ -14,6 +14,8 @@ import RunningDevices from '../components/RunningDevices';
14
14
  import Temperature from '../components/Temperature';
15
15
  import UvIndex from '../components/UvIndex';
16
16
  import WaterQuality from '../components/WaterQuality';
17
+ import { SCProvider } from '../../../context';
18
+ import { mockSCStore } from '../../../context/mockStore';
17
19
 
18
20
  jest.mock('axios');
19
21
 
@@ -28,6 +30,12 @@ jest.mock('@react-navigation/native', () => {
28
30
  };
29
31
  });
30
32
 
33
+ const wrapComponent = (route) => (
34
+ <SCProvider initState={mockSCStore({})}>
35
+ <UnitSummary route={route} />
36
+ </SCProvider>
37
+ );
38
+
31
39
  describe('Test UnitSummary', () => {
32
40
  let route;
33
41
 
@@ -50,7 +58,7 @@ describe('Test UnitSummary', () => {
50
58
 
51
59
  test('onRefresh', async () => {
52
60
  act(() => {
53
- tree = create(<UnitSummary route={route} />);
61
+ tree = create(wrapComponent(route));
54
62
  });
55
63
  const instance = tree.root;
56
64
  const refreshControl = instance.findByType(RefreshControl);
@@ -74,7 +82,7 @@ describe('Test UnitSummary', () => {
74
82
  axios.get.mockImplementation(() => Promise.resolve(response));
75
83
 
76
84
  act(() => {
77
- tree = create(<UnitSummary route={route} />);
85
+ tree = create(wrapComponent(route));
78
86
  });
79
87
  expect(axios.get).toHaveBeenCalled();
80
88
  expect(axios.get).toHaveBeenCalledWith(
@@ -94,7 +102,7 @@ describe('Test UnitSummary', () => {
94
102
  axios.get.mockImplementation(() => Promise.resolve(response));
95
103
 
96
104
  act(() => {
97
- tree = create(<UnitSummary route={route} />);
105
+ tree = create(wrapComponent(route));
98
106
  });
99
107
  act(() => {
100
108
  jest.runOnlyPendingTimers();
@@ -149,7 +157,7 @@ describe('Test UnitSummary', () => {
149
157
  test(`create Unit Summarty Detail ${value}`, async () => {
150
158
  route.params.summary.screen = value;
151
159
  await act(async () => {
152
- tree = await create(<UnitSummary route={route} />);
160
+ tree = await create(wrapComponent(route));
153
161
  });
154
162
  const instance = tree.root;
155
163
  const UnitSummaryDetail = list_result[index];
@@ -3,6 +3,14 @@ import renderer, { act } from 'react-test-renderer';
3
3
  import { TESTID } from '../../../../../configs/Constants';
4
4
  import { Colors } from '../../../../../configs';
5
5
  import PowerConsumption from '../index';
6
+ import { SCProvider } from '../../../../../context';
7
+ import { mockSCStore } from '../../../../../context/mockStore';
8
+
9
+ const wrapComponent = (summaryDetail) => (
10
+ <SCProvider initState={mockSCStore({})}>
11
+ <PowerConsumption summaryDetail={summaryDetail} />
12
+ </SCProvider>
13
+ );
6
14
 
7
15
  describe('Test 3PPowerConsumption', () => {
8
16
  let tree;
@@ -17,9 +25,7 @@ describe('Test 3PPowerConsumption', () => {
17
25
  listConfigs: [1, 2, 3],
18
26
  };
19
27
  act(() => {
20
- tree = renderer.create(
21
- <PowerConsumption summaryDetail={summaryDetail} />
22
- );
28
+ tree = renderer.create(wrapComponent(summaryDetail));
23
29
  });
24
30
  const instance = tree.root;
25
31
  const listIndicator = instance.find(
@@ -32,24 +38,28 @@ describe('Test 3PPowerConsumption', () => {
32
38
  standard: 'Voltage 1',
33
39
  value: summaryDetail.volt1Value,
34
40
  measure: '',
41
+ id: 1,
35
42
  },
36
43
  {
37
44
  color: Colors.Blue10,
38
45
  standard: 'Current 1',
39
46
  value: summaryDetail.current1Value,
40
47
  measure: '',
48
+ id: 4,
41
49
  },
42
50
  {
43
51
  color: Colors.Orange,
44
52
  standard: 'Active Power',
45
53
  value: summaryDetail.activePowerValue,
46
54
  measure: '',
55
+ id: 7,
47
56
  },
48
57
  {
49
58
  color: Colors.Green6,
50
59
  standard: 'Power Factor 1',
51
60
  value: summaryDetail.powerFactor1Value,
52
61
  measure: '',
62
+ id: 8,
53
63
  },
54
64
  ];
55
65
  expect(listIndicator.props.data).toEqual(resultList);
@@ -7,12 +7,13 @@ import { Section, Today } from '../../../../commons';
7
7
  import ListQualityIndicator from '../../../../commons/Device/WaterQualitySensor/ListQualityIndicator';
8
8
  import PMSensorIndicatior from '../../../../commons/Device/PMSensor/PMSensorIndicatior';
9
9
  import ConfigHistoryChart from '../../../../commons/UnitSummary/ConfigHistoryChart';
10
- import { t } from 'i18n-js';
10
+ import { useTranslations } from '../../../../hooks/Common/useTranslations';
11
11
  import HistoryChart from '../../../../commons/Device/HistoryChart';
12
12
  import { axiosGet } from '../../../../utils/Apis/axios';
13
13
  import { TESTID } from '../../../../configs/Constants';
14
14
 
15
15
  const ThreePhasePowerConsumption = memo(({ unit, summary, summaryDetail }) => {
16
+ const t = useTranslations();
16
17
  const {
17
18
  volt1Value,
18
19
  volt2Value,
@@ -5,9 +5,17 @@ import { Colors } from '../../../../../configs';
5
5
  import ListQualityIndicator from '../../../../../commons/Device/WaterQualitySensor/ListQualityIndicator';
6
6
  import axios from 'axios';
7
7
  import PowerConsumption from '../index';
8
+ import { SCProvider } from '../../../../../context';
9
+ import { mockSCStore } from '../../../../../context/mockStore';
8
10
 
9
11
  jest.mock('axios');
10
12
 
13
+ const wrapComponent = (summaryDetail) => (
14
+ <SCProvider initState={mockSCStore({})}>
15
+ <PowerConsumption summaryDetail={summaryDetail} />
16
+ </SCProvider>
17
+ );
18
+
11
19
  describe('Test PowerConsumption', () => {
12
20
  let tree;
13
21
 
@@ -21,9 +29,7 @@ describe('Test PowerConsumption', () => {
21
29
  listConfigs: [1, 2, 3],
22
30
  };
23
31
  act(() => {
24
- tree = renderer.create(
25
- <PowerConsumption summaryDetail={summaryDetail} />
26
- );
32
+ tree = renderer.create(wrapComponent(summaryDetail));
27
33
  });
28
34
  const instance = tree.root;
29
35
  const listIndicator = instance.find(
@@ -36,24 +42,28 @@ describe('Test PowerConsumption', () => {
36
42
  standard: 'Voltage',
37
43
  value: summaryDetail.voltValue,
38
44
  measure: '',
45
+ id: 1,
39
46
  },
40
47
  {
41
48
  color: Colors.Blue10,
42
49
  standard: 'Current',
43
50
  value: summaryDetail.currentValue,
44
51
  measure: '',
52
+ id: 2,
45
53
  },
46
54
  {
47
55
  color: Colors.Orange,
48
56
  standard: 'Active Power',
49
57
  value: summaryDetail.activePowerValue,
50
58
  measure: '',
59
+ id: 3,
51
60
  },
52
61
  {
53
62
  color: Colors.Green6,
54
63
  standard: 'Power Factor',
55
64
  value: summaryDetail.powerFactorValue,
56
65
  measure: '',
66
+ id: 4,
57
67
  },
58
68
  ];
59
69
  expect(listIndicator.props.data).toEqual(resultList);
@@ -82,9 +92,7 @@ describe('Test PowerConsumption', () => {
82
92
  axios.get.mockImplementation(async (url) => response);
83
93
 
84
94
  await act(async () => {
85
- tree = await renderer.create(
86
- <PowerConsumption summaryDetail={summaryDetail} />
87
- );
95
+ tree = await renderer.create(wrapComponent(summaryDetail));
88
96
  });
89
97
  expect(axios.get).toHaveBeenCalled();
90
98
  });
@@ -112,9 +120,7 @@ describe('Test PowerConsumption', () => {
112
120
  axios.get.mockImplementation(async (url) => response);
113
121
 
114
122
  await act(async () => {
115
- tree = await renderer.create(
116
- <PowerConsumption summaryDetail={summaryDetail} />
117
- );
123
+ tree = await renderer.create(wrapComponent(summaryDetail));
118
124
  });
119
125
  expect(axios.get).toHaveBeenCalled();
120
126
  });
@@ -132,9 +138,7 @@ describe('Test PowerConsumption', () => {
132
138
  };
133
139
 
134
140
  await act(async () => {
135
- tree = await renderer.create(
136
- <PowerConsumption summaryDetail={summaryDetail} />
137
- );
141
+ tree = await renderer.create(wrapComponent(summaryDetail));
138
142
  });
139
143
  const instance = tree.root;
140
144
  const listQualityIndicator = instance.findByType(ListQualityIndicator);
@@ -1,6 +1,6 @@
1
1
  import React, { memo, useMemo, useEffect, useState } 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 moment from 'moment';
5
5
  import { API, Colors } from '../../../../configs';
6
6
  import Text from '../../../../commons/Text';
@@ -14,6 +14,7 @@ import { TESTID } from '../../../../configs/Constants';
14
14
  import { axiosGet } from '../../../../utils/Apis/axios';
15
15
 
16
16
  const PowerConsumption = memo(({ summaryDetail }) => {
17
+ const t = useTranslations();
17
18
  const {
18
19
  voltValue,
19
20
  currentValue,
@@ -61,7 +61,7 @@ describe('test RunningDevices', () => {
61
61
  });
62
62
  const instance = tree.root;
63
63
  const texts = instance.findAllByType(ItemDevice);
64
- expect(texts.length).toEqual(1);
64
+ expect(texts.length).toEqual(0);
65
65
 
66
66
  const button = instance.findAllByType(TouchableOpacity);
67
67
  act(() => {
@@ -101,7 +101,7 @@ describe('test RunningDevices', () => {
101
101
  });
102
102
  const instance = tree.root;
103
103
  const texts = instance.findAllByType(ItemDevice);
104
- expect(texts.length).toEqual(1);
104
+ expect(texts.length).toEqual(0);
105
105
 
106
106
  const button = instance.findAllByType(TouchableOpacity);
107
107
  act(() => {
@@ -1,6 +1,6 @@
1
1
  import React, { memo, useMemo } from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import t, { useTranslations } from '../../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../../configs';
6
6
  import { Section, Today } from '../../../../commons';
@@ -44,6 +44,7 @@ const getDataTemperature = (summaryDetail) => {
44
44
  };
45
45
 
46
46
  const Temperature = memo(({ summaryDetail }) => {
47
+ const t = useTranslations();
47
48
  const { listConfigs } = summaryDetail;
48
49
 
49
50
  const showBoxHistory = useMemo(() => {