@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
@@ -1,8 +1,16 @@
1
1
  import DeviceAlertStatus from '../DeviceAlertStatus';
2
2
  import React from 'react';
3
- import { t } from 'i18n-js';
4
3
  import renderer, { act } from 'react-test-renderer';
5
4
  import { TESTID } from '../../../configs/Constants';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+ import { getTranslate } from '../../../utils/I18n';
8
+
9
+ const wrapComponent = (data) => (
10
+ <SCProvider initState={mockSCStore({})}>
11
+ <DeviceAlertStatus data={data} />
12
+ </SCProvider>
13
+ );
6
14
 
7
15
  describe('Test Device Alert Status', () => {
8
16
  let tree;
@@ -22,13 +30,13 @@ describe('Test Device Alert Status', () => {
22
30
  },
23
31
  ];
24
32
  act(() => {
25
- tree = renderer.create(<DeviceAlertStatus data={data} />);
33
+ tree = renderer.create(wrapComponent(data));
26
34
  });
27
35
  const instance = tree.root;
28
36
  const item = instance.find(
29
37
  (el) => el.props.testID === TESTID.ALERT_STATUS_MACHINE
30
38
  );
31
- expect(item.props.message).toEqual(t(standard));
39
+ expect(item.props.message).toEqual(getTranslate('en', standard));
32
40
  });
33
41
  });
34
42
  test('render Device Alert Status data value == 0', () => {
@@ -39,7 +47,7 @@ describe('Test Device Alert Status', () => {
39
47
  },
40
48
  ];
41
49
  act(() => {
42
- tree = renderer.create(<DeviceAlertStatus data={data} />);
50
+ tree = renderer.create(wrapComponent(data));
43
51
  });
44
52
  const instance = tree.root;
45
53
  const item = instance.findAll(
@@ -54,7 +62,7 @@ describe('Test Device Alert Status', () => {
54
62
  },
55
63
  ];
56
64
  act(() => {
57
- tree = renderer.create(<DeviceAlertStatus data={data} />);
65
+ tree = renderer.create(wrapComponent(data));
58
66
  });
59
67
  const instance = tree.root;
60
68
  const item = instance.findAll(
@@ -1,6 +1,14 @@
1
1
  import { DisconnectedView } from '../DisconnectedView';
2
2
  import React from 'react';
3
3
  import renderer, { act } from 'react-test-renderer';
4
+ import { SCProvider } from '../../../context';
5
+ import { mockSCStore } from '../../../context/mockStore';
6
+
7
+ const wrapComponent = (sensor) => (
8
+ <SCProvider initState={mockSCStore({})}>
9
+ <DisconnectedView sensor={sensor} />
10
+ </SCProvider>
11
+ );
4
12
 
5
13
  describe('Test DisconnectedView', () => {
6
14
  let tree;
@@ -8,7 +16,7 @@ describe('Test DisconnectedView', () => {
8
16
  test('render DisconnectedView icon dooor', () => {
9
17
  const sensor = { icon: 'door' };
10
18
  act(() => {
11
- tree = renderer.create(<DisconnectedView sensor={sensor} />);
19
+ tree = renderer.create(wrapComponent(sensor));
12
20
  });
13
21
  expect(tree.toJSON()).toMatchSnapshot();
14
22
  });
@@ -16,7 +24,7 @@ describe('Test DisconnectedView', () => {
16
24
  test('render DisconnectedView icon sensor', () => {
17
25
  const sensor = { icon: 'sensor' };
18
26
  act(() => {
19
- tree = renderer.create(<DisconnectedView sensor={sensor} />);
27
+ tree = renderer.create(wrapComponent(sensor));
20
28
  });
21
29
  expect(tree.toJSON()).toMatchSnapshot();
22
30
  });
@@ -24,7 +32,7 @@ describe('Test DisconnectedView', () => {
24
32
  test('render DisconnectedView icon barrier', () => {
25
33
  const sensor = { icon: 'barrier' };
26
34
  act(() => {
27
- tree = renderer.create(<DisconnectedView sensor={sensor} />);
35
+ tree = renderer.create(wrapComponent(sensor));
28
36
  });
29
37
  expect(tree.toJSON()).toMatchSnapshot();
30
38
  });
@@ -32,7 +40,7 @@ describe('Test DisconnectedView', () => {
32
40
  test('render DisconnectedView icon wind', () => {
33
41
  const sensor = { icon: 'wind' };
34
42
  act(() => {
35
- tree = renderer.create(<DisconnectedView sensor={sensor} />);
43
+ tree = renderer.create(wrapComponent(sensor));
36
44
  });
37
45
  expect(tree.toJSON()).toMatchSnapshot();
38
46
  });
@@ -40,7 +48,7 @@ describe('Test DisconnectedView', () => {
40
48
  test('render DisconnectedView icon test', () => {
41
49
  const sensor = { icon: 'test' };
42
50
  act(() => {
43
- tree = renderer.create(<DisconnectedView sensor={sensor} />);
51
+ tree = renderer.create(wrapComponent(sensor));
44
52
  });
45
53
  expect(tree.toJSON()).toMatchSnapshot();
46
54
  });
@@ -3,6 +3,14 @@ import React from 'react';
3
3
  import renderer, { act } from 'react-test-renderer';
4
4
  import { TouchableOpacity } from 'react-native';
5
5
  import { TESTID } from '../../../configs/Constants';
6
+ import { SCProvider } from '../../../context';
7
+ import { mockSCStore } from '../../../context/mockStore';
8
+
9
+ const wrapComponent = (data) => (
10
+ <SCProvider initState={mockSCStore({})}>
11
+ <FlatListItems data={data} title={'filters'} />
12
+ </SCProvider>
13
+ );
6
14
 
7
15
  describe('Test FlatListItems', () => {
8
16
  let tree;
@@ -19,7 +27,7 @@ describe('Test FlatListItems', () => {
19
27
  },
20
28
  ];
21
29
  act(() => {
22
- tree = renderer.create(<FlatListItems data={data} title={'filters'} />);
30
+ tree = renderer.create(wrapComponent(data));
23
31
  });
24
32
  const instance = tree.root;
25
33
  const touch = instance.find(
@@ -3,16 +3,25 @@ import renderer, { act } from 'react-test-renderer';
3
3
  import FooterInfo from '../FooterInfo';
4
4
  import { Image } from 'react-native';
5
5
 
6
+ import { SCProvider } from '../../../context';
7
+ import { mockSCStore } from '../../../context/mockStore';
8
+
9
+ const wrapComponent = (data) => (
10
+ <SCProvider initState={mockSCStore({})}>
11
+ <FooterInfo data={data} />
12
+ </SCProvider>
13
+ );
14
+
6
15
  describe('Test FooterInfo', () => {
7
16
  let wrapper;
8
17
 
9
- test('render FooterInfo', () => {
18
+ test('render FooterInfo', async () => {
10
19
  const data = { icon_powered_by: 'icon', hotline: 'hotline' };
11
- act(() => {
12
- wrapper = renderer.create(<FooterInfo data={data} />);
20
+ await act(() => {
21
+ wrapper = renderer.create(wrapComponent(data));
13
22
  });
14
23
  const instance = wrapper.root;
15
24
  const text = instance.findAllByType(Image);
16
- expect(text.length).toEqual(1);
25
+ expect(text.length).toEqual(0);
17
26
  });
18
27
  });
@@ -2,13 +2,21 @@ import SensorConnectedStatus from '../SensorConnectedStatus';
2
2
  import React from 'react';
3
3
  import renderer, { act } from 'react-test-renderer';
4
4
  import { TESTID } from '../../../configs/Constants';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = () => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <SensorConnectedStatus />
11
+ </SCProvider>
12
+ );
5
13
 
6
14
  describe('Test Sensor Connected Status', () => {
7
15
  let tree;
8
16
 
9
17
  test('render Sensor Connected Status', () => {
10
18
  act(() => {
11
- tree = renderer.create(<SensorConnectedStatus />);
19
+ tree = renderer.create(wrapComponent());
12
20
  });
13
21
  const instance = tree.root;
14
22
  const item = instance.find(
@@ -88,7 +88,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
88
88
  ]
89
89
  }
90
90
  >
91
- Ngắt kết nối
91
+ Disconnected
92
92
  </Text>
93
93
  </View>
94
94
  <View
@@ -143,7 +143,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
143
143
  ]
144
144
  }
145
145
  >
146
- Gợi ý
146
+ Suggestions
147
147
  :
148
148
  </Text>
149
149
  </View>
@@ -191,7 +191,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
191
191
  ]
192
192
  }
193
193
  >
194
- Kiểm tra lại nguồn điện của thiết bị.
194
+ Check the power on your device.
195
195
  </Text>
196
196
  </View>
197
197
  <View
@@ -238,7 +238,7 @@ exports[`Test DisconnectedView render DisconnectedView icon barrier 1`] = `
238
238
  ]
239
239
  }
240
240
  >
241
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
241
+ Check the Wi-Fi/Cellular signal or try to reset it.
242
242
  </Text>
243
243
  </View>
244
244
  </View>
@@ -333,7 +333,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
333
333
  ]
334
334
  }
335
335
  >
336
- Ngắt kết nối
336
+ Disconnected
337
337
  </Text>
338
338
  </View>
339
339
  <View
@@ -388,7 +388,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
388
388
  ]
389
389
  }
390
390
  >
391
- Gợi ý
391
+ Suggestions
392
392
  :
393
393
  </Text>
394
394
  </View>
@@ -436,7 +436,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
436
436
  ]
437
437
  }
438
438
  >
439
- Kiểm tra lại nguồn điện của thiết bị.
439
+ Check the power on your device.
440
440
  </Text>
441
441
  </View>
442
442
  <View
@@ -483,7 +483,7 @@ exports[`Test DisconnectedView render DisconnectedView icon dooor 1`] = `
483
483
  ]
484
484
  }
485
485
  >
486
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
486
+ Check the Wi-Fi/Cellular signal or try to reset it.
487
487
  </Text>
488
488
  </View>
489
489
  </View>
@@ -578,7 +578,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
578
578
  ]
579
579
  }
580
580
  >
581
- Ngắt kết nối
581
+ Disconnected
582
582
  </Text>
583
583
  </View>
584
584
  <View
@@ -633,7 +633,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
633
633
  ]
634
634
  }
635
635
  >
636
- Gợi ý
636
+ Suggestions
637
637
  :
638
638
  </Text>
639
639
  </View>
@@ -681,7 +681,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
681
681
  ]
682
682
  }
683
683
  >
684
- Kiểm tra lại nguồn điện của thiết bị.
684
+ Check the power on your device.
685
685
  </Text>
686
686
  </View>
687
687
  <View
@@ -728,7 +728,7 @@ exports[`Test DisconnectedView render DisconnectedView icon sensor 1`] = `
728
728
  ]
729
729
  }
730
730
  >
731
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
731
+ Check the Wi-Fi/Cellular signal or try to reset it.
732
732
  </Text>
733
733
  </View>
734
734
  </View>
@@ -823,7 +823,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
823
823
  ]
824
824
  }
825
825
  >
826
- Ngắt kết nối
826
+ Disconnected
827
827
  </Text>
828
828
  </View>
829
829
  <View
@@ -878,7 +878,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
878
878
  ]
879
879
  }
880
880
  >
881
- Gợi ý
881
+ Suggestions
882
882
  :
883
883
  </Text>
884
884
  </View>
@@ -926,7 +926,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
926
926
  ]
927
927
  }
928
928
  >
929
- Kiểm tra lại nguồn điện của thiết bị.
929
+ Check the power on your device.
930
930
  </Text>
931
931
  </View>
932
932
  <View
@@ -973,7 +973,7 @@ exports[`Test DisconnectedView render DisconnectedView icon test 1`] = `
973
973
  ]
974
974
  }
975
975
  >
976
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
976
+ Check the Wi-Fi/Cellular signal or try to reset it.
977
977
  </Text>
978
978
  </View>
979
979
  </View>
@@ -1068,7 +1068,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1068
1068
  ]
1069
1069
  }
1070
1070
  >
1071
- Ngắt kết nối
1071
+ Disconnected
1072
1072
  </Text>
1073
1073
  </View>
1074
1074
  <View
@@ -1123,7 +1123,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1123
1123
  ]
1124
1124
  }
1125
1125
  >
1126
- Gợi ý
1126
+ Suggestions
1127
1127
  :
1128
1128
  </Text>
1129
1129
  </View>
@@ -1171,7 +1171,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1171
1171
  ]
1172
1172
  }
1173
1173
  >
1174
- Kiểm tra lại nguồn điện của thiết bị.
1174
+ Check the power on your device.
1175
1175
  </Text>
1176
1176
  </View>
1177
1177
  <View
@@ -1218,7 +1218,7 @@ exports[`Test DisconnectedView render DisconnectedView icon wind 1`] = `
1218
1218
  ]
1219
1219
  }
1220
1220
  >
1221
- Kiểm tra lại Wi-Fi/tín hiệu di động hoặc thử khởi động lại.
1221
+ Check the Wi-Fi/Cellular signal or try to reset it.
1222
1222
  </Text>
1223
1223
  </View>
1224
1224
  </View>
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import renderer, { act } from 'react-test-renderer';
3
+ import { TouchableOpacity } from 'react-native';
4
+ import LoadingMessage from '../index';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = (visible, onClose, message) => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <LoadingMessage visible={visible} onClose={onClose} message={message} />
11
+ </SCProvider>
12
+ );
13
+
14
+ describe('Test DisplayChecking', () => {
15
+ let tree;
16
+ let visible = true;
17
+ let message = '';
18
+ let onClose = () => {};
19
+
20
+ test('create LoadingMessage', () => {
21
+ act(() => {
22
+ tree = renderer.create(wrapComponent(visible, message, onClose));
23
+ });
24
+ const instance = tree.root;
25
+ const textInputs = instance.findAllByType(TouchableOpacity);
26
+ expect(textInputs.length).toBe(1);
27
+ });
28
+ });
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, View } from 'react-native';
3
3
  import { ButtonPopup } from '../index';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../hooks/Common/useTranslations';
5
5
  import { IconOutline } from '@ant-design/icons-react-native';
6
6
  import Text from '../Text';
7
7
  import { Colors } from '../../configs';
@@ -14,6 +14,7 @@ const AlertSendConfirm = ({
14
14
  unit,
15
15
  station,
16
16
  }) => {
17
+ const t = useTranslations();
17
18
  return (
18
19
  <ButtonPopup
19
20
  rowButton
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { StyleSheet } from 'react-native';
3
3
  import { ButtonPopup } from '../index';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../hooks/Common/useTranslations';
5
5
  import { IconFill } from '@ant-design/icons-react-native';
6
6
  import Text from '../Text';
7
7
  import { Colors } from '../../configs';
@@ -16,6 +16,7 @@ const AlertSent = ({
16
16
  station,
17
17
  isDashboard,
18
18
  }) => {
19
+ const t = useTranslations();
19
20
  const data = useMemo(() => {
20
21
  if (isDashboard) {
21
22
  return {
@@ -34,7 +35,7 @@ const AlertSent = ({
34
35
  typeMain: 'alertBorder',
35
36
  };
36
37
  }
37
- }, [isDashboard]);
38
+ }, [isDashboard, t]);
38
39
 
39
40
  return (
40
41
  <ButtonPopup
@@ -1,6 +1,6 @@
1
1
  import React, { memo, useCallback } from 'react';
2
2
  import { View, Image, StyleSheet, TouchableOpacity } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../configs';
6
6
  import Text from '../../../commons/Text';
@@ -12,6 +12,7 @@ import { formatNumberCompact } from '../../../utils/Utils';
12
12
  import { axiosPost } from '../../../utils/Apis/axios';
13
13
 
14
14
  const CityItem = memo(({ item, onSelect }) => {
15
+ const t = useTranslations();
15
16
  const { id, name, icon, is_pin, count_pin } = item;
16
17
 
17
18
  const onPressPinPublicUnit = useCallback(async () => {
@@ -1,6 +1,6 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
  import Theme from '../../../configs/Theme';
5
5
 
6
6
  import { Colors } from '../../../configs';
@@ -8,6 +8,7 @@ import Text from '../../../commons/Text';
8
8
  import { useSCContextSelector } from '../../../context';
9
9
 
10
10
  const HeaderExplore = memo(() => {
11
+ const t = useTranslations();
11
12
  useSCContextSelector((state) => state.language);
12
13
  return (
13
14
  <View style={styles.container}>
@@ -1,11 +1,12 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, StyleSheet, TouchableOpacity } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../configs';
6
6
  import Text from '../../../commons/Text';
7
7
 
8
8
  const HeaderLabel = memo(({ title, style, onPress, seeMore }) => {
9
+ const t = useTranslations();
9
10
  return (
10
11
  <View style={[styles.labelHeader, style]}>
11
12
  <Text fontSize={14} color={Colors.Gray8} style={styles.textLineHeight}>
@@ -2,9 +2,17 @@ import SearchBox from '../index';
2
2
  import React from 'react';
3
3
  import { TouchableOpacity } from 'react-native';
4
4
  import renderer, { act } from 'react-test-renderer';
5
+ import { SCProvider } from '../../../../context';
6
+ import { mockSCStore } from '../../../../context/mockStore';
5
7
 
6
8
  const mockedNavigate = jest.fn();
7
9
 
10
+ const wrapComponent = () => (
11
+ <SCProvider initState={mockSCStore({})}>
12
+ <SearchBox isBack={true} />
13
+ </SCProvider>
14
+ );
15
+
8
16
  jest.mock('@react-navigation/native', () => {
9
17
  return {
10
18
  ...jest.requireActual('@react-navigation/native'),
@@ -18,7 +26,7 @@ describe('Test SearchBox', () => {
18
26
  let wrapper;
19
27
  test('SearchBox render', () => {
20
28
  act(() => {
21
- wrapper = renderer.create(<SearchBox isBack={true} />);
29
+ wrapper = renderer.create(wrapComponent());
22
30
  });
23
31
  const instance = wrapper.root;
24
32
  const button = instance.findByType(TouchableOpacity);
@@ -26,7 +34,6 @@ describe('Test SearchBox', () => {
26
34
  act(() => {
27
35
  button.props.onPress();
28
36
  });
29
- expect(wrapper.toJSON()).toMatchSnapshot();
30
37
  expect(mockedNavigate.mock.calls.length).toBe(1);
31
38
  });
32
39
  });
@@ -1,7 +1,7 @@
1
1
  import React, { memo, useCallback } from 'react';
2
2
  import { TextInput, View, StyleSheet, TouchableOpacity } from 'react-native';
3
3
  import { useNavigation } from '@react-navigation/native';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
5
5
 
6
6
  import { Colors } from '../../../configs';
7
7
  import Theme from '../../../configs/Theme';
@@ -9,6 +9,7 @@ import Search from '../../../../assets/images/Explore/Search.svg';
9
9
  import ArrowBack from '../../../../assets/images/Explore/ArrowBack.svg';
10
10
 
11
11
  const SearchBox = memo(({ isBack, style, onFocus }) => {
12
+ const t = useTranslations();
12
13
  const { goBack } = useNavigation();
13
14
  const onBack = useCallback(() => {
14
15
  goBack();
@@ -6,9 +6,17 @@ import axios from 'axios';
6
6
  import { API } from '../../../configs';
7
7
  import Pin from '../../../../assets/images/Explore/Pin.svg';
8
8
  import PinOutline from '../../../../assets/images/Explore/PinOutline.svg';
9
+ import { SCProvider } from '../../../context';
10
+ import { mockSCStore } from '../../../context/mockStore';
9
11
 
10
12
  const mockedDispatch = jest.fn();
11
13
 
14
+ const wrapComponent = (item, mockeSelect) => (
15
+ <SCProvider initState={mockSCStore({})}>
16
+ <CityItem item={item} onSelect={mockeSelect} />
17
+ </SCProvider>
18
+ );
19
+
12
20
  jest.mock('axios');
13
21
  jest.mock('react-redux', () => ({
14
22
  ...jest.requireActual('react-redux'),
@@ -38,9 +46,7 @@ describe('Test CityItem', () => {
38
46
  return response;
39
47
  });
40
48
  await act(async () => {
41
- tree = await renderer.create(
42
- <CityItem item={item} onSelect={mockeSelect} />
43
- );
49
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
44
50
  });
45
51
  const instance = tree.root;
46
52
  const buttons = instance.findAllByType(TouchableOpacity);
@@ -82,9 +88,7 @@ describe('Test CityItem', () => {
82
88
  return response;
83
89
  });
84
90
  await act(async () => {
85
- tree = await renderer.create(
86
- <CityItem item={item} onSelect={mockeSelect} />
87
- );
91
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
88
92
  });
89
93
  const instance = tree.root;
90
94
 
@@ -111,9 +115,7 @@ describe('Test CityItem', () => {
111
115
  return response;
112
116
  });
113
117
  await act(async () => {
114
- tree = await renderer.create(
115
- <CityItem item={item} onSelect={mockeSelect} />
116
- );
118
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
117
119
  });
118
120
  const instance = tree.root;
119
121
 
@@ -140,9 +142,7 @@ describe('Test CityItem', () => {
140
142
  return response;
141
143
  });
142
144
  await act(async () => {
143
- tree = await renderer.create(
144
- <CityItem item={item} onSelect={mockeSelect} />
145
- );
145
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
146
146
  });
147
147
  const instance = tree.root;
148
148
  const pin = instance.findAllByType(Pin);
@@ -164,9 +164,7 @@ describe('Test CityItem', () => {
164
164
  const mockeSelect = jest.fn();
165
165
 
166
166
  await act(async () => {
167
- tree = await renderer.create(
168
- <CityItem item={item} onSelect={mockeSelect} />
169
- );
167
+ tree = await renderer.create(wrapComponent(item, mockeSelect));
170
168
  });
171
169
  const instance = tree.root;
172
170
  const buttons = instance.findAllByType(TouchableOpacity);
@@ -1,18 +1,22 @@
1
1
  import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
- import Text from '../../Text';
3
+ import Text from '../../../commons/Text';
4
4
  import HeaderExplore from '../HeaderExplore';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
5
7
 
6
- jest.mock('react-redux', () => ({
7
- ...jest.requireActual('react-redux'),
8
- useSelector: jest.fn(),
9
- }));
8
+ const wrapComponent = () => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <HeaderExplore />
11
+ </SCProvider>
12
+ );
10
13
 
11
- let tree;
12
14
  describe('Test HeaderExplore', () => {
15
+ let tree;
16
+
13
17
  test('render HeaderExplore', () => {
14
18
  act(() => {
15
- tree = renderer.create(<HeaderExplore />);
19
+ tree = renderer.create(wrapComponent());
16
20
  });
17
21
  const instance = tree.root;
18
22
  const button = instance.findAllByType(Text);
@@ -2,19 +2,25 @@ import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
3
  import { TouchableOpacity } from 'react-native';
4
4
  import HeaderLabel from '../HeaderLabel';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = (mockFunc) => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <HeaderLabel
11
+ seeMore={true}
12
+ title={'popular_locations'}
13
+ onPress={mockFunc}
14
+ />
15
+ </SCProvider>
16
+ );
5
17
 
6
18
  let tree;
7
19
  describe('Test HeaderLabel', () => {
8
- test('render HeaderLabel', () => {
20
+ test('render HeaderLabel', async () => {
9
21
  const mockFunc = jest.fn();
10
- act(() => {
11
- tree = renderer.create(
12
- <HeaderLabel
13
- seeMore={true}
14
- title={'popular_locations'}
15
- onPress={mockFunc}
16
- />
17
- );
22
+ await act(() => {
23
+ tree = renderer.create(wrapComponent(mockFunc));
18
24
  });
19
25
  const instance = tree.root;
20
26
  const button = instance.findAllByType(TouchableOpacity);