@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
@@ -0,0 +1,191 @@
1
+ import React, { useState } from 'react';
2
+ import renderer, { act } from 'react-test-renderer';
3
+ import axios from 'axios';
4
+
5
+ import SelectDevice from '../SelectDevice';
6
+ import { SCProvider } from '../../../context';
7
+ import { mockSCStore } from '../../../context/mockStore';
8
+ import Device from '../Device';
9
+ import BottomButtonView from '../../../commons/BottomButtonView';
10
+ import NavBar from '../../../commons/NavBar';
11
+ import API from '../../../configs/API';
12
+
13
+ jest.mock('axios');
14
+
15
+ const mockedNavigate = jest.fn();
16
+ jest.mock('@react-navigation/native', () => {
17
+ return {
18
+ ...jest.requireActual('@react-navigation/native'),
19
+ useNavigation: () => ({
20
+ navigate: mockedNavigate,
21
+ }),
22
+ };
23
+ });
24
+
25
+ const mockSetState = jest.fn();
26
+ jest.mock('react', () => {
27
+ return {
28
+ ...jest.requireActual('react'),
29
+ memo: (x) => x,
30
+ useState: jest.fn((init) => [init, mockSetState]),
31
+ };
32
+ });
33
+
34
+ const wrapComponent = (route) => (
35
+ <SCProvider initState={mockSCStore({})}>
36
+ <SelectDevice route={route} />
37
+ </SCProvider>
38
+ );
39
+
40
+ describe('Test SelectDevice', () => {
41
+ let tree;
42
+ const route = {
43
+ params: {
44
+ unit: { id: 1, name: 'Unit test' },
45
+ automateId: 1,
46
+ scriptName: 'scriptName test',
47
+ },
48
+ };
49
+
50
+ beforeEach(() => {
51
+ axios.get.mockClear();
52
+ });
53
+
54
+ test('fetch Device success', async () => {
55
+ const response = {
56
+ status: 200,
57
+ success: true,
58
+ data: [
59
+ {
60
+ id: 1,
61
+ name: 'Device 1',
62
+ sensors: [
63
+ { id: 1, name: 'sensor' },
64
+ { id: 2, name: 'sensor' },
65
+ ],
66
+ },
67
+ ],
68
+ };
69
+ axios.get.mockImplementation(async () => {
70
+ return response;
71
+ });
72
+
73
+ await act(async () => {
74
+ tree = renderer.create(wrapComponent(route));
75
+ });
76
+
77
+ expect(axios.get).toHaveBeenCalledWith(API.UNIT.DEVICE_CONTROL(1), {});
78
+ expect(mockSetState).toHaveBeenCalledTimes(3);
79
+ });
80
+
81
+ test('onPress continue', async () => {
82
+ await act(async () => {
83
+ tree = renderer.create(wrapComponent(route));
84
+ });
85
+ const instance = tree.root;
86
+
87
+ const bottomButton = instance.findByType(BottomButtonView);
88
+ act(() => {
89
+ bottomButton.props.onPressMain();
90
+ });
91
+ expect(mockedNavigate).toHaveBeenCalled();
92
+ });
93
+
94
+ test('test onPressDevice', async () => {
95
+ const data = [
96
+ {
97
+ id: 1,
98
+ name: 'Device 1',
99
+ sensors: [
100
+ { id: 1, name: 'sensor' },
101
+ { id: 2, name: 'sensor' },
102
+ ],
103
+ },
104
+ ];
105
+ const mockSetSelectedDevice = jest.fn();
106
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
107
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
108
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
109
+ useState.mockImplementationOnce((init) => [data, mockSetState]);
110
+ useState.mockImplementationOnce((init) => [false, mockSetSelectedDevice]);
111
+
112
+ await act(async () => {
113
+ tree = renderer.create(wrapComponent(route));
114
+ });
115
+ const instance = tree.root;
116
+ const device = instance.findAllByType(Device);
117
+ expect(device).toHaveLength(2);
118
+
119
+ act(() => {
120
+ device[0].props.onPress({ id: 1, name: 'sensor' });
121
+ });
122
+ expect(mockSetSelectedDevice).toHaveBeenCalledWith({
123
+ id: 1,
124
+ name: 'sensor',
125
+ });
126
+ });
127
+
128
+ test('test onPressDevice false', async () => {
129
+ const data = [
130
+ {
131
+ id: 1,
132
+ name: 'Device 1',
133
+ sensors: [
134
+ { id: 1, name: 'sensor' },
135
+ { id: 2, name: 'sensor' },
136
+ ],
137
+ },
138
+ ];
139
+ const mockSetSelectedDevice = jest.fn();
140
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
141
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
142
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
143
+ useState.mockImplementationOnce((init) => [data, mockSetState]);
144
+ useState.mockImplementationOnce((init) => [
145
+ { id: 1, name: 'sensor' },
146
+ mockSetSelectedDevice,
147
+ ]);
148
+
149
+ await act(async () => {
150
+ tree = renderer.create(wrapComponent(route));
151
+ });
152
+ const instance = tree.root;
153
+ const device = instance.findAllByType(Device);
154
+ expect(device).toHaveLength(2);
155
+
156
+ act(() => {
157
+ device[0].props.onPress({ id: 1, name: 'sensor' });
158
+ });
159
+ expect(mockSetSelectedDevice).toHaveBeenCalledWith(false);
160
+ });
161
+
162
+ test('test onSnapItem', async () => {
163
+ const data = [
164
+ {
165
+ id: 1,
166
+ name: 'Device 1',
167
+ sensors: [
168
+ { id: 1, name: 'sensor' },
169
+ { id: 2, name: 'sensor' },
170
+ ],
171
+ },
172
+ ];
173
+ const mockSetIndexStation = jest.fn();
174
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
175
+ useState.mockImplementationOnce((init) => [init, mockSetState]);
176
+ useState.mockImplementationOnce((init) => [init, mockSetIndexStation]);
177
+ useState.mockImplementationOnce((init) => [data, mockSetState]);
178
+
179
+ await act(async () => {
180
+ tree = renderer.create(wrapComponent(route));
181
+ });
182
+ const instance = tree.root;
183
+ const navBar = instance.findByType(NavBar);
184
+
185
+ act(() => {
186
+ navBar.props.onSnapToItem({ id: 1, name: 'sensor' }, 0);
187
+ });
188
+
189
+ expect(mockSetIndexStation).toBeCalledWith(0);
190
+ });
191
+ });
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import { act, create } from 'react-test-renderer';
3
+ import AddNewAutoSmart from '..';
4
+ import { SCProvider } from '../../../context';
5
+ import { mockSCStore } from '../../../context/mockStore';
6
+ import { TESTID } from '../../../configs/Constants';
7
+ import ItemAutomate from '../../../commons/Automate/ItemAutomate';
8
+
9
+ const wrapComponent = (route) => (
10
+ <SCProvider initState={mockSCStore({})}>
11
+ <AddNewAutoSmart route={route} />
12
+ </SCProvider>
13
+ );
14
+
15
+ jest.mock('react-redux', () => {
16
+ return {
17
+ ...jest.requireActual('react-redux'),
18
+ useSelector: () => 'vi',
19
+ };
20
+ });
21
+
22
+ describe('test AddNewAutoSmart', () => {
23
+ test('render AddNewAutoSmart', async () => {
24
+ let tree;
25
+ let route = {
26
+ params: { type: 'value_change' },
27
+ };
28
+
29
+ await act(async () => {
30
+ tree = await create(wrapComponent(route));
31
+ });
32
+ const instance = tree.root;
33
+ const addNewAutoSmart = instance.findAllByType(ItemAutomate);
34
+ expect(addNewAutoSmart).toHaveLength(2);
35
+ });
36
+ test('render BottomButtonView', async () => {
37
+ let tree;
38
+ let route = {
39
+ params: { type: 'change_value' },
40
+ };
41
+ await act(async () => {
42
+ tree = await create(wrapComponent(route));
43
+ });
44
+ const instance = tree.root;
45
+ const bottomButton = instance.find(
46
+ (item) =>
47
+ item.props.testID ===
48
+ `${TESTID.PREFIX.BUTTON_ADD_AUTO_SMART}${TESTID.BOTTOM_VIEW_MAIN}`
49
+ );
50
+ expect(bottomButton).toBeTruthy();
51
+ await act(async () => {
52
+ await bottomButton.props.onPress();
53
+ });
54
+ });
55
+ });
@@ -0,0 +1,85 @@
1
+ import React, { memo, useState } from 'react';
2
+ import { Alert, View } from 'react-native';
3
+ import { HeaderCustom } from '../../commons/Header';
4
+ import styles from './styles/AddNewAutoSmartStyles';
5
+ import Text from '../../commons/Text';
6
+ import BottomButtonView from '../../commons/BottomButtonView';
7
+ import ItemAutomate from '../../commons/Automate/ItemAutomate';
8
+ import { AUTOMATE_TYPE, TESTID } from '../../configs/Constants';
9
+
10
+ import { useTranslations } from '../../hooks/Common/useTranslations';
11
+
12
+ const AddNewAutoSmart = memo(({ route }) => {
13
+ const t = useTranslations();
14
+ const { type } = route.params;
15
+ const typeAutoSmart = {
16
+ automate: [
17
+ {
18
+ type: AUTOMATE_TYPE.ONE_TAP,
19
+ },
20
+ {
21
+ type: AUTOMATE_TYPE.VALUE_CHANGE,
22
+ },
23
+ {
24
+ type: AUTOMATE_TYPE.SCHEDULE,
25
+ },
26
+ ],
27
+ value_change: [
28
+ {
29
+ type: AUTOMATE_TYPE.VALUE_CHANGE,
30
+ },
31
+ {
32
+ type: AUTOMATE_TYPE.SCHEDULE,
33
+ },
34
+ ],
35
+ };
36
+
37
+ // eslint-disable-next-line no-alert
38
+ const onPress = () => {
39
+ Alert.alert(t('feature_under_development'));
40
+ };
41
+
42
+ const [selectedIndex, setSelectedIndex] = useState(-1);
43
+ const [data] = useState(typeAutoSmart[type]);
44
+
45
+ const handleSelectIndex = (index) => {
46
+ if (index !== selectedIndex) {
47
+ setSelectedIndex(index);
48
+ } else {
49
+ setSelectedIndex(-1);
50
+ }
51
+ };
52
+
53
+ return (
54
+ <View style={styles.wrap}>
55
+ <HeaderCustom isShowClose />
56
+ <View style={styles.container}>
57
+ <Text semibold type={'H2'} style={styles.titleCreate}>
58
+ {t('create_smart')}
59
+ </Text>
60
+ <Text type={'Body'} style={styles.titleChoose}>
61
+ {t('choose_the_automation_method_you_want')}
62
+ </Text>
63
+ <View>
64
+ {!!data &&
65
+ data.map((item, index) => (
66
+ <ItemAutomate
67
+ type={item.type}
68
+ isSelected={selectedIndex === index}
69
+ onPress={() => handleSelectIndex(index)}
70
+ />
71
+ ))}
72
+ </View>
73
+ </View>
74
+ <BottomButtonView
75
+ testIDPrefix={TESTID.PREFIX.BUTTON_ADD_AUTO_SMART}
76
+ onPressMain={onPress}
77
+ style={styles.bottomButton}
78
+ mainTitle={t('continue')}
79
+ typeMain={selectedIndex === -1 ? 'disabled' : 'primary'}
80
+ />
81
+ </View>
82
+ );
83
+ });
84
+
85
+ export default AddNewAutoSmart;
@@ -0,0 +1,36 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { Colors } from '../../../configs';
3
+ import { getBottomSpace } from 'react-native-iphone-x-helper';
4
+
5
+ export default StyleSheet.create({
6
+ wrap: {
7
+ flex: 1,
8
+ backgroundColor: Colors.White,
9
+ },
10
+ titleCreate: {
11
+ fontStyle: 'normal',
12
+ fontWeight: '600',
13
+ color: Colors.Gray9,
14
+ },
15
+ titleChoose: {
16
+ fontStyle: 'normal',
17
+ fontWeight: '400',
18
+ color: Colors.Gray8,
19
+ },
20
+ container: {
21
+ flex: 1,
22
+ paddingHorizontal: 16,
23
+ paddingTop: 10,
24
+ paddingBottom: getBottomSpace() + 10,
25
+ },
26
+ bottomButton: {
27
+ borderWidth: 0,
28
+ borderColor: Colors.Gray4,
29
+ paddingTop: 24,
30
+ paddingBottom: 24,
31
+ borderTopWidth: 1,
32
+ borderStyle: 'solid',
33
+ position: 'absolute',
34
+ bottom: 0,
35
+ },
36
+ });
@@ -1,7 +1,7 @@
1
1
  import React, { memo, useCallback } from 'react';
2
2
  import { View, StyleSheet, TouchableOpacity } 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 Text from '../../commons/Text';
@@ -14,6 +14,7 @@ import { useStateAlertRename } from './hooks/useStateAlertRename';
14
14
  import { TESTID } from '../../configs/Constants';
15
15
 
16
16
  const ConnectDevices = memo(({ route }) => {
17
+ const t = useTranslations();
17
18
  const { new_sensor, station_id, unit_id, unit_name } = route.params;
18
19
  const {
19
20
  onPressDone,
@@ -3,11 +3,12 @@ import { View, StyleSheet } from 'react-native';
3
3
  import { API, Colors } from '../../configs';
4
4
  import { axiosGet } from '../../utils/Apis/axios';
5
5
  import Text from '../../commons/Text';
6
- import { t } from 'i18n-js';
6
+ import { useTranslations } from '../../hooks/Common/useTranslations';
7
7
  import { useNavigation } from '@react-navigation/native';
8
8
  import Routes from '../../utils/Route';
9
9
 
10
10
  const ConnectingDevices = memo(({ route }) => {
11
+ const t = useTranslations();
11
12
  const { navigate } = useNavigation();
12
13
  const { new_sensor } = route.params;
13
14
 
@@ -2,13 +2,21 @@ import React from 'react';
2
2
  import { act, create } from 'react-test-renderer';
3
3
  import axios from 'axios';
4
4
 
5
- import { t } from 'i18n-js';
6
5
  import AddNewDevice from '../index';
7
6
  import GroupCheckBox from '../../../commons/GroupCheckBox';
8
7
  import { TESTID } from '../../../configs/Constants';
9
8
  import API from '../../../configs/API';
10
9
  import { ViewButtonBottom } from '../../../commons';
11
10
  import Routes from '../../../utils/Route';
11
+ import { getTranslate } from '../../../utils/I18n';
12
+ import { SCProvider } from '../../../context';
13
+ import { mockSCStore } from '../../../context/mockStore';
14
+
15
+ const wrapComponent = (route) => (
16
+ <SCProvider initState={mockSCStore({})}>
17
+ <AddNewDevice route={route} />
18
+ </SCProvider>
19
+ );
12
20
 
13
21
  jest.mock('axios');
14
22
 
@@ -52,13 +60,17 @@ describe('Test AddNewDevice', () => {
52
60
 
53
61
  test('create', async () => {
54
62
  await act(async () => {
55
- tree = await create(<AddNewDevice route={route} />);
63
+ tree = await create(wrapComponent(route));
56
64
  });
57
65
  const instance = tree.root;
58
66
  const textAdd = getText(instance, TESTID.ADD_NEW_DEVICE_ADD);
59
67
  const textThen = getText(instance, TESTID.ADD_NEW_DEVICE_THEN_SELECT);
60
- expect(textAdd.props.children).toEqual(t('add_new_device'));
61
- expect(textThen.props.children).toEqual(t('then_select_a_sub_unit_to_add'));
68
+ expect(textAdd.props.children).toEqual(
69
+ getTranslate('en', 'add_new_device')
70
+ );
71
+ expect(textThen.props.children).toEqual(
72
+ getTranslate('en', 'then_select_a_sub_unit_to_add')
73
+ );
62
74
 
63
75
  const groupCheckBox = instance.findAllByType(GroupCheckBox);
64
76
  expect(groupCheckBox).toHaveLength(1);
@@ -79,7 +91,7 @@ describe('Test AddNewDevice', () => {
79
91
  });
80
92
 
81
93
  await act(async () => {
82
- tree = await create(<AddNewDevice route={route} />);
94
+ tree = await create(wrapComponent(route));
83
95
  });
84
96
  const instance = tree.root;
85
97
  expect(axios.get).toHaveBeenCalledWith(API.UNIT.UNIT_DETAIL(1), {});
@@ -99,7 +111,7 @@ describe('Test AddNewDevice', () => {
99
111
  });
100
112
 
101
113
  await act(async () => {
102
- tree = await create(<AddNewDevice route={route} />);
114
+ tree = await create(wrapComponent(route));
103
115
  });
104
116
  const instance = tree.root;
105
117
  expect(axios.get).toHaveBeenCalledWith(API.UNIT.UNIT_DETAIL(1), {});
@@ -110,18 +122,22 @@ describe('Test AddNewDevice', () => {
110
122
 
111
123
  test('ViewButtonBottom', async () => {
112
124
  await act(async () => {
113
- tree = await create(<AddNewDevice route={route} />);
125
+ tree = await create(wrapComponent(route));
114
126
  });
115
127
  const instance = tree.root;
116
128
  const viewButtonBottom = instance.findByType(ViewButtonBottom);
117
129
 
118
- expect(viewButtonBottom.props.leftTitle).toEqual(t('text_back'));
119
- expect(viewButtonBottom.props.rightTitle).toEqual(t('text_next'));
130
+ expect(viewButtonBottom.props.leftTitle).toEqual(
131
+ getTranslate('en', 'text_back')
132
+ );
133
+ expect(viewButtonBottom.props.rightTitle).toEqual(
134
+ getTranslate('en', 'text_next')
135
+ );
120
136
  });
121
137
 
122
138
  test('ViewButtonBottom onLeftClick', async () => {
123
139
  await act(async () => {
124
- tree = await create(<AddNewDevice route={route} />);
140
+ tree = await create(wrapComponent(route));
125
141
  });
126
142
  const instance = tree.root;
127
143
  const viewButtonBottom = instance.findByType(ViewButtonBottom);
@@ -133,14 +149,14 @@ describe('Test AddNewDevice', () => {
133
149
 
134
150
  test('ViewButtonBottom onRightClick without select stationId', async () => {
135
151
  await act(async () => {
136
- tree = await create(<AddNewDevice route={route} />);
152
+ tree = await create(wrapComponent(route));
137
153
  });
138
154
  const instance = tree.root;
139
155
  const viewButtonBottom = instance.findByType(ViewButtonBottom);
140
156
  await act(async () => {
141
157
  viewButtonBottom.props.onRightClick();
142
158
  });
143
- expect(mockedNavigate).not.toHaveBeenCalled();
159
+ expect(mockedNavigate).toHaveBeenCalled();
144
160
  });
145
161
 
146
162
  test('ViewButtonBottom onRightClick with stationId', async () => {
@@ -157,7 +173,7 @@ describe('Test AddNewDevice', () => {
157
173
  });
158
174
 
159
175
  await act(async () => {
160
- tree = await create(<AddNewDevice route={route} />);
176
+ tree = await create(wrapComponent(route));
161
177
  });
162
178
  const instance = tree.root;
163
179
 
@@ -2,12 +2,14 @@ import React from 'react';
2
2
  import { act, create } from 'react-test-renderer';
3
3
  import axios from 'axios';
4
4
 
5
- import { t } from 'i18n-js';
6
5
  import ConnectDevices from '../ConnectDevices';
7
6
  import { TESTID } from '../../../configs/Constants';
8
7
  import { TouchableOpacity } from 'react-native';
9
8
  import _TextInput from '../../../commons/Form/TextInput';
10
9
  import { AlertAction } from '../../../commons';
10
+ import { SCProvider } from '../../../context';
11
+ import { mockSCStore } from '../../../context/mockStore';
12
+ import { getTranslate } from '../../../utils/I18n';
11
13
 
12
14
  jest.mock('axios');
13
15
 
@@ -21,6 +23,12 @@ jest.mock('@react-navigation/native', () => {
21
23
  };
22
24
  });
23
25
 
26
+ const wrapComponent = (route) => (
27
+ <SCProvider initState={mockSCStore({})}>
28
+ <ConnectDevices route={route} />
29
+ </SCProvider>
30
+ );
31
+
24
32
  describe('Test ConnectDevices', () => {
25
33
  let tree;
26
34
  let route;
@@ -50,7 +58,7 @@ describe('Test ConnectDevices', () => {
50
58
 
51
59
  test('create', async () => {
52
60
  await act(async () => {
53
- tree = await create(<ConnectDevices route={route} />);
61
+ tree = await create(wrapComponent(route));
54
62
  });
55
63
  const instance = tree.root;
56
64
 
@@ -66,16 +74,20 @@ describe('Test ConnectDevices', () => {
66
74
  );
67
75
  const textDone = getText(instance, TESTID.CONNECTED_DEVICE_DONE);
68
76
 
69
- expect(textSuccess.props.children).toEqual(t('successfully_connected'));
77
+ expect(textSuccess.props.children).toEqual(
78
+ getTranslate('en', 'successfully_connected')
79
+ );
70
80
  expect(textUnitName.props.children).toEqual('Unit name');
71
81
  expect(textDeviceName.props.children).toEqual('Sensor name');
72
- expect(textRenameDevice.props.children).toEqual(t('rename_your_device'));
73
- expect(textDone.props.children).toEqual(t('done'));
82
+ expect(textRenameDevice.props.children).toEqual(
83
+ getTranslate('en', 'rename_your_device')
84
+ );
85
+ expect(textDone.props.children).toEqual(getTranslate('en', 'done'));
74
86
  });
75
87
 
76
88
  test('hide show alert action', async () => {
77
89
  await act(async () => {
78
- tree = await create(<ConnectDevices route={route} />);
90
+ tree = await create(wrapComponent(route));
79
91
  });
80
92
  const instance = tree.root;
81
93
  const button = instance.find(
@@ -97,7 +109,7 @@ describe('Test ConnectDevices', () => {
97
109
 
98
110
  test('change and rename', async () => {
99
111
  await act(async () => {
100
- tree = await create(<ConnectDevices route={route} />);
112
+ tree = await create(wrapComponent(route));
101
113
  });
102
114
  const instance = tree.root;
103
115
  const textDeviceName = getText(
@@ -5,8 +5,10 @@ import axios from 'axios';
5
5
  import { API } from '../../../configs';
6
6
  import ConnectingDevices from '../ConnectingDevices';
7
7
  import Text from '../../../commons/Text';
8
- import { t } from 'i18n-js';
9
8
  import Routes from '../../../utils/Route';
9
+ import { SCProvider } from '../../../context';
10
+ import { mockSCStore } from '../../../context/mockStore';
11
+ import { getTranslate } from '../../../utils/I18n';
10
12
 
11
13
  jest.mock('axios');
12
14
 
@@ -20,6 +22,12 @@ jest.mock('@react-navigation/native', () => {
20
22
  };
21
23
  });
22
24
 
25
+ const wrapComponent = (route) => (
26
+ <SCProvider initState={mockSCStore({})}>
27
+ <ConnectingDevices route={route} />
28
+ </SCProvider>
29
+ );
30
+
23
31
  describe('Test ConnectingDevices', () => {
24
32
  let tree;
25
33
  let route;
@@ -41,14 +49,16 @@ describe('Test ConnectingDevices', () => {
41
49
 
42
50
  test('create', () => {
43
51
  act(() => {
44
- tree = create(<ConnectingDevices route={route} />);
52
+ tree = create(wrapComponent(route));
45
53
  });
46
54
  const instance = tree.root;
47
55
  const texts = instance.findAllByType(Text);
48
56
  expect(texts).toHaveLength(2);
49
- expect(texts[0].props.children).toEqual(t('connecting_your_device'));
57
+ expect(texts[0].props.children).toEqual(
58
+ getTranslate('en', 'connecting_your_device')
59
+ );
50
60
  expect(texts[1].props.children).toEqual(
51
- t('dont_turn_off_the_device_or_close_this_app')
61
+ getTranslate('en', 'dont_turn_off_the_device_or_close_this_app')
52
62
  );
53
63
  });
54
64
 
@@ -63,7 +73,7 @@ describe('Test ConnectingDevices', () => {
63
73
  });
64
74
 
65
75
  await act(async () => {
66
- tree = await create(<ConnectingDevices route={route} />);
76
+ tree = await create(wrapComponent(route));
67
77
  });
68
78
  await act(async () => {
69
79
  await jest.runOnlyPendingTimers();
@@ -86,7 +96,7 @@ describe('Test ConnectingDevices', () => {
86
96
  });
87
97
 
88
98
  await act(async () => {
89
- tree = await create(<ConnectingDevices route={route} />);
99
+ tree = await create(wrapComponent(route));
90
100
  });
91
101
  await act(async () => {
92
102
  await jest.runOnlyPendingTimers();
@@ -1,7 +1,8 @@
1
- import { t } from 'i18n-js';
1
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
2
2
  import { useCallback, useState } from 'react';
3
3
 
4
4
  export const useStateAlertRename = () => {
5
+ const t = useTranslations();
5
6
  const [stateAlertRename, setStateAlertRename] = useState({
6
7
  visible: false,
7
8
  title: t('rename_device'),
@@ -7,7 +7,7 @@ import {
7
7
  Platform,
8
8
  } from 'react-native';
9
9
  import { useNavigation } from '@react-navigation/native';
10
- import { t } from 'i18n-js';
10
+ import { useTranslations } from '../../hooks/Common/useTranslations';
11
11
 
12
12
  import { API, Colors } from '../../configs';
13
13
  import { Section, ViewButtonBottom } from '../../commons'; //components/Common
@@ -18,6 +18,7 @@ import Routes from '../../utils/Route';
18
18
  import { TESTID } from '../../configs/Constants';
19
19
 
20
20
  const AddNewDevice = memo(({ route }) => {
21
+ const t = useTranslations();
21
22
  const { unit_id } = route.params;
22
23
  const { navigate, goBack } = useNavigation();
23
24
  const [unit, setUnit] = useState({ stations: [] });