@eohjsc/react-native-smart-city 0.3.4 → 0.3.7

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 (293) hide show
  1. package/README.md +15 -36
  2. package/package.json +5 -9
  3. package/react-native-smart-city.podspec +0 -1
  4. package/src/commons/Action/ItemQuickAction.js +4 -16
  5. package/src/commons/Action/__test__/ItemQuickAction.test.js +6 -11
  6. package/src/commons/ActionGroup/ColorPickerTemplate.js +24 -37
  7. package/src/commons/ActionGroup/CurtainButtonTemplate.js +5 -10
  8. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +31 -12
  9. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +0 -4
  10. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/ItemPasscode.js +1 -1
  11. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +0 -14
  12. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/index.js +0 -1
  13. package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +2 -8
  14. package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +10 -10
  15. package/src/commons/ActionGroup/OnOffTemplate/index.js +2 -3
  16. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +9 -7
  17. package/src/commons/ActionGroup/SliderRangeTemplate.js +2 -6
  18. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +3 -7
  19. package/src/commons/ActionGroup/StatesGridActionTemplate.js +8 -22
  20. package/src/commons/ActionGroup/TimerActionTemplate.js +3 -11
  21. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +5 -1
  22. package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +4 -53
  23. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +83 -3
  24. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +14 -14
  25. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +78 -53
  26. package/src/commons/ActionGroup/__test__/OneBigButtonTemplate.test.js +20 -36
  27. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +57 -1
  28. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -58
  29. package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -49
  30. package/src/commons/ActionGroup/__test__/index.test.js +4 -142
  31. package/src/commons/Auth/AccountList.js +1 -1
  32. package/src/commons/Automate/ItemAutomate.js +3 -1
  33. package/src/commons/Connecting/__test__/Connecting.test.js +2 -19
  34. package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +3 -7
  35. package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +11 -8
  36. package/src/commons/ConnectingProcess/__test__/Connecting.test.js +3 -136
  37. package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +2 -3
  38. package/src/commons/ConnectingProcess/index.js +25 -75
  39. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +13 -16
  40. package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +1 -1
  41. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +5 -0
  42. package/src/commons/Device/ConnectedViewHeader.js +1 -1
  43. package/src/commons/Device/HistoryChart.js +3 -7
  44. package/src/commons/Device/ItemDevice.js +12 -19
  45. package/src/commons/Device/LinearChart.js +0 -15
  46. package/src/commons/Device/PMSensor/PMSensorIndicatior.js +12 -16
  47. package/src/commons/Device/PMSensor/PMSensorIndicatorStyles.js +0 -3
  48. package/src/commons/Device/SonosSpeaker/index.js +1 -1
  49. package/src/commons/Device/WaterQualitySensor/ListQualityIndicator.js +0 -1
  50. package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +2 -7
  51. package/src/commons/Explore/__test__/CityItem.test.js +54 -33
  52. package/src/commons/Form/CurrencyInput.js +1 -15
  53. package/src/commons/Form/TextInputPassword.js +1 -1
  54. package/src/commons/FullLoading/index.js +1 -2
  55. package/src/commons/Header/HeaderCustom.js +1 -2
  56. package/src/commons/HeaderAni/index.js +1 -6
  57. package/src/commons/HorizontalPicker/index.js +2 -2
  58. package/src/commons/MediaPlayerDetail/Styles/MediaPlayerDetailStyles.js +6 -0
  59. package/src/commons/MediaPlayerDetail/index.js +47 -25
  60. package/src/commons/MenuActionAddnew/index.js +0 -1
  61. package/src/commons/MenuActionList/index.js +0 -1
  62. package/src/commons/MenuActionMore/index.js +1 -1
  63. package/src/commons/PreventAccess/index.js +1 -9
  64. package/src/commons/Sharing/MemberList.js +2 -10
  65. package/src/commons/Sharing/WrapHeaderScrollable.js +0 -2
  66. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +1 -0
  67. package/src/commons/SubUnit/Favorites/index.js +3 -2
  68. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +35 -8
  69. package/src/commons/SubUnit/OneTap/index.js +2 -1
  70. package/src/commons/SubUnit/ShortDetail.js +9 -25
  71. package/src/commons/SubUnit/__test__/Item.test.js +1 -0
  72. package/src/commons/SubUnit/__test__/ShortDetail.test.js +2 -9
  73. package/src/commons/Unit/SharedUnit.js +0 -1
  74. package/src/commons/Unit/__test__/SharedUnit.test.js +183 -38
  75. package/src/commons/UnitSummary/ConfigHistoryChart/index.js +13 -2
  76. package/src/commons/UnitSummary/ConfigHistoryChart.js +13 -22
  77. package/src/commons/WheelDateTimePicker/index.js +3 -4
  78. package/src/configs/API.js +143 -87
  79. package/src/configs/Constants.js +2 -57
  80. package/src/configs/SCConfig.js +0 -4
  81. package/src/context/actionType.ts +0 -8
  82. package/src/context/mockStore.ts +0 -10
  83. package/src/context/reducer.ts +2 -38
  84. package/src/hooks/Common/index.js +0 -2
  85. package/src/hooks/Common/useGetIdUser.js +5 -1
  86. package/src/hooks/Common/useSensorsStatus.js +4 -4
  87. package/src/hooks/useReceiveNotifications.js +5 -9
  88. package/src/iot/Monitor.js +2 -3
  89. package/src/iot/RemoteControl/Bluetooth.js +1 -1
  90. package/src/iot/RemoteControl/GoogleHome.js +49 -75
  91. package/src/iot/RemoteControl/Internet.js +1 -1
  92. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +48 -95
  93. package/src/iot/RemoteControl/__test__/Internet.test.js +7 -18
  94. package/src/iot/RemoteControl/__test__/LgThinq.test.js +177 -36
  95. package/src/iot/RemoteControl/index.js +52 -52
  96. package/src/navigations/UnitStack.js +20 -11
  97. package/src/screens/AQIGuide/index.js +1 -1
  98. package/src/screens/ActivityLog/FilterPopup.js +0 -2
  99. package/src/screens/ActivityLog/__test__/index.test.js +23 -38
  100. package/src/screens/ActivityLog/hooks/__test__/index.test.js +90 -51
  101. package/src/screens/ActivityLog/hooks/index.js +1 -1
  102. package/src/screens/ActivityLog/index.js +2 -2
  103. package/src/screens/AddCommon/SelectSubUnit.js +0 -1
  104. package/src/screens/AddCommon/SelectUnit.js +0 -1
  105. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +24 -13
  106. package/src/screens/AddCommon/__test__/SelectUnit.test.js +33 -9
  107. package/src/screens/AddLocationMaps/index.js +5 -9
  108. package/src/screens/AddNewAction/SelectAction.js +8 -8
  109. package/src/screens/AddNewAction/SelectSensorDevices.js +2 -8
  110. package/src/screens/AddNewAction/SetupSensor.js +7 -7
  111. package/src/screens/AddNewAction/__test__/SelectAction.test.js +91 -10
  112. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +26 -40
  113. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +1 -3
  114. package/src/screens/AddNewAutoSmart/index.js +2 -5
  115. package/src/screens/AddNewDevice/ConnectingDevices.js +3 -3
  116. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +34 -42
  117. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +4 -0
  118. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +22 -22
  119. package/src/screens/AddNewDevice/hooks/ConnectDevices.js +1 -1
  120. package/src/screens/AddNewDevice/index.js +0 -1
  121. package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +17 -23
  122. package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +4 -7
  123. package/src/screens/AddNewGateway/SelectGateway.js +0 -1
  124. package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -2
  125. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +6 -4
  126. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +4 -0
  127. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +29 -5
  128. package/src/screens/AddNewGateway/__test__/SelectGateway.test.js +4 -0
  129. package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +4 -0
  130. package/src/screens/AddNewGateway/index.js +0 -1
  131. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +24 -10
  132. package/src/screens/AddNewOneTap/index.js +2 -3
  133. package/src/screens/AllCamera/index.js +4 -4
  134. package/src/screens/Automate/MultiUnits.js +8 -8
  135. package/src/screens/Automate/__test__/MultiUnits.test.js +9 -6
  136. package/src/screens/Automate/__test__/index.test.js +12 -7
  137. package/src/screens/Automate/index.js +3 -5
  138. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +8 -36
  139. package/src/screens/ConfirmUnitDeletion/index.js +1 -7
  140. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +22 -71
  141. package/src/screens/Device/EditDevice/index.js +15 -17
  142. package/src/screens/Device/__test__/detail.test.js +86 -33
  143. package/src/screens/Device/components/DetailHistoryChart.js +1 -1
  144. package/src/screens/Device/components/SensorConnectStatusViewHeader.js +0 -1
  145. package/src/screens/Device/components/SensorDisplayItem.js +2 -5
  146. package/src/screens/Device/detail.js +24 -80
  147. package/src/screens/Device/hooks/useDisconnectedDevice.js +4 -4
  148. package/src/screens/Device/hooks/useFavoriteDevice.js +9 -5
  149. package/src/screens/DeviceInfo/__test__/index.test.js +2 -0
  150. package/src/screens/EditActionsList/index.js +1 -1
  151. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -6
  152. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +19 -7
  153. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +2 -20
  154. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +23 -40
  155. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  156. package/src/screens/EmergencySetting/index.js +1 -4
  157. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +25 -41
  158. package/src/screens/Explore/index.js +0 -2
  159. package/src/screens/GuestInfo/__test__/index.test.js +41 -14
  160. package/src/screens/GuestInfo/components/RecurringDetail.js +0 -1
  161. package/src/screens/GuestInfo/components/TemporaryDetail.js +2 -2
  162. package/src/screens/HanetCamera/Detail.js +1 -1
  163. package/src/screens/HanetCamera/__test__/CaptureFaceID.test.js +12 -8
  164. package/src/screens/HanetCamera/__test__/Detail.test.js +42 -27
  165. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +5 -8
  166. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +32 -10
  167. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -3
  168. package/src/screens/HanetCamera/hooks/__test__/useHanetCheckinData.test.js +35 -43
  169. package/src/screens/HanetCamera/hooks/__test__/useHanetPlaceMembers.test.js +21 -10
  170. package/src/screens/HanetCamera/hooks/useHanetCheckinData.js +11 -11
  171. package/src/screens/HanetCamera/hooks/useHanetPlaceMembers.js +11 -11
  172. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +22 -33
  173. package/src/screens/ManageAccess/hooks/__test__/useManageAccess.test.js +45 -44
  174. package/src/screens/ManageAccess/hooks/index.js +4 -7
  175. package/src/screens/ManageAccess/index.js +1 -2
  176. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +12 -35
  177. package/src/screens/MoveToAnotherSubUnit/index.js +6 -6
  178. package/src/screens/Notification/__test__/Notification.test.js +25 -14
  179. package/src/screens/Notification/__test__/NotificationItem.test.js +7 -8
  180. package/src/screens/Notification/components/NotificationItem.js +20 -17
  181. package/src/screens/Notification/index.js +2 -9
  182. package/src/screens/PlayBackCamera/Timer.js +2 -2
  183. package/src/screens/PlayBackCamera/__test__/index.test.js +2 -87
  184. package/src/screens/PlayBackCamera/index.js +6 -22
  185. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +20 -7
  186. package/src/screens/ScanChipQR/components/QRScan/index.js +0 -1
  187. package/src/screens/ScanChipQR/hooks/index.js +16 -15
  188. package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +24 -8
  189. package/src/screens/ScriptDetail/__test__/index.test.js +86 -17
  190. package/src/screens/ScriptDetail/index.js +14 -19
  191. package/src/screens/SelectUnit/__test__/index.test.js +55 -12
  192. package/src/screens/SelectUnit/index.js +4 -9
  193. package/src/screens/SetSchedule/index.js +11 -15
  194. package/src/screens/SharedUnit/__test__/TabHeader.test.js +2 -0
  195. package/src/screens/SharedUnit/index.js +0 -2
  196. package/src/screens/Sharing/Components/SensorItem.js +12 -10
  197. package/src/screens/Sharing/InfoMemberUnit.js +1 -1
  198. package/src/screens/Sharing/MemberList.js +11 -12
  199. package/src/screens/Sharing/SelectPermission.js +76 -121
  200. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +29 -47
  201. package/src/screens/Sharing/__test__/MemberList.test.js +127 -13
  202. package/src/screens/Sharing/__test__/SelectPermission.test.js +38 -28
  203. package/src/screens/Sharing/__test__/SelectUser.test.js +38 -17
  204. package/src/screens/Sharing/hooks/index.js +0 -3
  205. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -3
  206. package/src/screens/SmartIr/components/SelectBrand.js +1 -1
  207. package/src/screens/SubUnit/AddSubUnit.js +17 -23
  208. package/src/screens/SubUnit/Detail.js +2 -1
  209. package/src/screens/SubUnit/EditSubUnit.js +13 -15
  210. package/src/screens/SubUnit/ManageSubUnit.js +7 -13
  211. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +89 -29
  212. package/src/screens/SubUnit/__test__/Detail.test.js +8 -31
  213. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +89 -21
  214. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +1 -27
  215. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +45 -48
  216. package/src/screens/SubUnit/hooks/useManageSubUnit.js +7 -7
  217. package/src/screens/SyncLGDevice/AddLGDevice.js +0 -1
  218. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +91 -22
  219. package/src/screens/TDSGuide/index.js +1 -4
  220. package/src/screens/UVIndexGuide/index.js +1 -1
  221. package/src/screens/Unit/ChooseLocation.js +14 -7
  222. package/src/screens/Unit/Detail.js +75 -30
  223. package/src/screens/Unit/ManageUnit.js +0 -1
  224. package/src/screens/Unit/SelectAddress.js +23 -45
  225. package/src/screens/Unit/SmartAccount.js +4 -4
  226. package/src/screens/Unit/Station/index.js +0 -4
  227. package/src/screens/Unit/Summaries.js +2 -18
  228. package/src/screens/Unit/__test__/CheckSendEmail.test.js +29 -24
  229. package/src/screens/Unit/__test__/ChooseLocation.test.js +14 -27
  230. package/src/screens/Unit/__test__/Detail.test.js +200 -99
  231. package/src/screens/Unit/__test__/ManageUnit.test.js +42 -18
  232. package/src/screens/Unit/__test__/SelectAddress.test.js +49 -159
  233. package/src/screens/Unit/__test__/SmartAccount.test.js +9 -17
  234. package/src/screens/Unit/__test__/SmartAccountItem.test.js +1 -0
  235. package/src/screens/Unit/components/MyUnitDevice/index.js +4 -4
  236. package/src/screens/Unit/components/SharedUnit/index.js +0 -1
  237. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
  238. package/src/screens/Unit/components/__test__/SharedUnit.test.js +34 -31
  239. package/src/screens/Unit/styles.js +0 -4
  240. package/src/screens/UnitSummary/__test__/index.test.js +30 -91
  241. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +2 -31
  242. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/__test__/index.test.js +4 -7
  243. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/index.js +13 -2
  244. package/src/screens/UnitSummary/components/PowerConsumption/__test__/ItemPower.test.js +1 -0
  245. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -14
  246. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -11
  247. package/src/screens/UnitSummary/components/RunningDevices/index.js +10 -7
  248. package/src/screens/UnitSummary/components/Temperature/index.js +4 -4
  249. package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +2 -10
  250. package/src/screens/UnitSummary/index.js +1 -15
  251. package/src/screens/WaterQualityGuide/index.js +1 -1
  252. package/src/utils/Apis/axios.js +31 -54
  253. package/src/utils/Converter/time.js +18 -0
  254. package/src/utils/I18n/translations/en.json +1 -7
  255. package/src/utils/I18n/translations/vi.json +1 -8
  256. package/src/utils/Route/index.js +0 -1
  257. package/src/utils/Utils.js +7 -11
  258. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/ItemPasscode.test.js +0 -24
  259. package/src/commons/ActionGroup/__test__/NumberUpDownTemplateWithNullConfigValue.test.js +0 -60
  260. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +0 -77
  261. package/src/commons/Calendar/__test__/Calendar.test.js +0 -33
  262. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +0 -58
  263. package/src/commons/FieldTemplate/ChooseUserField/ChooseFieldStyles.js +0 -25
  264. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +0 -96
  265. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopupStyles.js +0 -39
  266. package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +0 -118
  267. package/src/commons/FieldTemplate/ChooseUserField/index.js +0 -62
  268. package/src/commons/FieldTemplate/PasscodeField/PasscodeFieldStyles.js +0 -30
  269. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +0 -90
  270. package/src/commons/FieldTemplate/PasscodeField/index.js +0 -43
  271. package/src/commons/FieldTemplate/ScheduleField/ScheduleFieldStyles.js +0 -13
  272. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +0 -179
  273. package/src/commons/FieldTemplate/ScheduleField/index.js +0 -176
  274. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +0 -62
  275. package/src/hooks/Common/useGGHomeDeviceConnected.js +0 -16
  276. package/src/hooks/IoT/__test__/useGGHomeConnection.test.js +0 -198
  277. package/src/hooks/IoT/__test__/useRemoteControl.test.js +0 -198
  278. package/src/hooks/IoT/index.js +0 -4
  279. package/src/hooks/IoT/useGGHomeConnection.js +0 -91
  280. package/src/hooks/IoT/useRemoteControl.js +0 -79
  281. package/src/hooks/index.js +0 -4
  282. package/src/navigations/UnitStackStyles.js +0 -21
  283. package/src/screens/Sharing/__test__/MemberList2.test.js +0 -80
  284. package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +0 -28
  285. package/src/screens/SideMenuDetail/__test__/index.test.js +0 -154
  286. package/src/screens/SideMenuDetail/index.js +0 -148
  287. package/src/screens/Unit/__test__/Summaries.test.js +0 -100
  288. package/src/screens/Unit/components/MyAllUnit/__test__/MyAllUnit.test.js +0 -36
  289. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -54
  290. package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +0 -50
  291. package/src/utils/Permission/common.js +0 -67
  292. package/src/utils/Setting/Location.js +0 -30
  293. package/src/utils/__test__/Utils.test.js +0 -12
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TouchableOpacity, Switch } from 'react-native';
2
+ import { TouchableOpacity, Switch, ActivityIndicator } from 'react-native';
3
3
  import renderer, { act } from 'react-test-renderer';
4
4
  import DateTimePickerModal from 'react-native-modal-datetime-picker';
5
5
  import moment from 'moment';
@@ -344,7 +344,7 @@ describe('Test ActionGroup', () => {
344
344
  expect(mockDoAction).toHaveBeenCalledTimes(1);
345
345
  });
346
346
 
347
- test('render ActionGroup NumberUpDownActionTemplate', async () => {
347
+ test('render ActionGroup NumberUpDownActionTemplate watch config value null', async () => {
348
348
  const mockDoAction = jest.fn();
349
349
  const actionGroup = {
350
350
  template: 'NumberUpDownActionTemplate',
@@ -362,11 +362,8 @@ describe('Test ActionGroup', () => {
362
362
  );
363
363
  });
364
364
  const instance = wrapper.root;
365
- const text = instance.findAllByType(Text);
366
- expect(text[0].props.children).toEqual('28 *C');
367
-
368
- const touchs = instance.findAllByType(TouchableOpacity);
369
- expect(touchs).toHaveLength(2);
365
+ const activity = instance.findAllByType(ActivityIndicator);
366
+ expect(activity.length).toEqual(1);
370
367
  });
371
368
 
372
369
  test('render ActionGroup StatesGridActionTemplate', async () => {
@@ -464,139 +461,4 @@ describe('Test ActionGroup', () => {
464
461
  moment('2021-09-09T10:00:00.000Z').valueOf()
465
462
  );
466
463
  });
467
-
468
- test('render OnOffSmartLock', async () => {
469
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
470
- const actionGroup = {
471
- template: 'OnOffSmartLockActionTemplate',
472
- title: 'Timer',
473
- configuration: {
474
- action_off_data: jest.fn(),
475
- action_on_data: jest.fn(),
476
- },
477
- };
478
- const mockDoAction = jest.fn();
479
- await act(() => {
480
- wrapper = renderer.create(
481
- wrapComponent(actionGroup, mockDoAction, sensor)
482
- );
483
- });
484
- const instance = wrapper.root;
485
- const texts = instance.findAllByType(Text);
486
- expect(texts).toHaveLength(5);
487
- });
488
-
489
- test('render OptionsDropdownActionTemplate', async () => {
490
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
491
- const actionGroup = {
492
- template: 'OptionsDropdownActionTemplate',
493
- title: 'Timer',
494
- configuration: {
495
- action_data: jest.fn(),
496
- options: [],
497
- icon_kit_data: 'icon_kit_data',
498
- icon: '',
499
- icon_outlined: 'icon_outlined',
500
- },
501
- };
502
- const mockDoAction = jest.fn();
503
- await act(() => {
504
- wrapper = renderer.create(
505
- wrapComponent(actionGroup, mockDoAction, sensor)
506
- );
507
- });
508
- const instance = wrapper.root;
509
- const texts = instance.findAllByType(Text);
510
- expect(texts).toHaveLength(7);
511
- });
512
-
513
- test('render CurtainButtonTemplate', async () => {
514
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
515
- const actionGroup = {
516
- template: 'curtain_action_template',
517
- title: 'Timer',
518
- configuration: {},
519
- };
520
- const mockDoAction = jest.fn();
521
- await act(() => {
522
- wrapper = renderer.create(
523
- wrapComponent(actionGroup, mockDoAction, sensor)
524
- );
525
- });
526
- const instance = wrapper.root;
527
- const texts = instance.findAllByType(Text);
528
- expect(texts).toHaveLength(2);
529
- });
530
-
531
- test('render SmartTiviActionTemplate', async () => {
532
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
533
- const actionGroup = {
534
- template: 'SmartTiviActionTemplate',
535
- title: 'Timer',
536
- configuration: {},
537
- };
538
- const mockDoAction = jest.fn();
539
- await act(() => {
540
- wrapper = renderer.create(
541
- wrapComponent(actionGroup, mockDoAction, sensor)
542
- );
543
- });
544
- const instance = wrapper.root;
545
- const texts = instance.findAllByType(Text);
546
- expect(texts).toHaveLength(4);
547
- });
548
-
549
- test('render ColorPickerTemplate', async () => {
550
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
551
- const actionGroup = {
552
- template: 'color_picker_template',
553
- title: 'Timer',
554
- configuration: {},
555
- };
556
- const mockDoAction = jest.fn();
557
- await act(() => {
558
- wrapper = renderer.create(
559
- wrapComponent(actionGroup, mockDoAction, sensor)
560
- );
561
- });
562
- const instance = wrapper.root;
563
- const texts = instance.findAllByType(Text);
564
- expect(texts).toHaveLength(2);
565
- });
566
-
567
- test('render SliderRangeTemplate', async () => {
568
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
569
- const actionGroup = {
570
- template: 'slider_range_template',
571
- title: 'Timer',
572
- configuration: {},
573
- };
574
- const mockDoAction = jest.fn();
575
- await act(() => {
576
- wrapper = renderer.create(
577
- wrapComponent(actionGroup, mockDoAction, sensor)
578
- );
579
- });
580
- const instance = wrapper.root;
581
- const texts = instance.findAllByType(Text);
582
- expect(texts).toHaveLength(4);
583
- });
584
-
585
- test('render TwoButtonTemplate', async () => {
586
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
587
- const actionGroup = {
588
- template: 'two_button_action_template',
589
- title: 'Timer',
590
- configuration: {},
591
- };
592
- const mockDoAction = jest.fn();
593
- await act(() => {
594
- wrapper = renderer.create(
595
- wrapComponent(actionGroup, mockDoAction, sensor)
596
- );
597
- });
598
- const instance = wrapper.root;
599
- const texts = instance.findAllByType(Text);
600
- expect(texts).toHaveLength(5);
601
- });
602
464
  });
@@ -5,7 +5,7 @@ import AccountItem from './AccountItem';
5
5
 
6
6
  const AccountList = ({ accounts }) => {
7
7
  return (
8
- <ScrollView scrollIndicatorInsets={{ right: 1 }}>
8
+ <ScrollView>
9
9
  {accounts.map((account) => (
10
10
  <AccountItem key={account.id || account.name} account={account} />
11
11
  ))}
@@ -35,7 +35,9 @@ const ItemAutomate = ({
35
35
  style={[styles.wrap, isSelected && styles.active]}
36
36
  >
37
37
  <View style={styles.row}>
38
- <View style={styles.wrapIcon}>{!!Icon && <Icon />}</View>
38
+ <View style={styles.wrapIcon}>
39
+ <Icon />
40
+ </View>
39
41
  <View style={styles.wrapTitle}>
40
42
  <Text type="H4" bold>
41
43
  {t(item?.title)}
@@ -5,19 +5,13 @@ import Text from '../../Text';
5
5
  import { SCProvider } from '../../../context';
6
6
  import { mockSCStore } from '../../../context/mockStore';
7
7
 
8
- const wrapComponent = (route, isLoading, isConnect, isPercentConnect) => (
8
+ const wrapComponent = (route) => (
9
9
  <SCProvider initState={mockSCStore({})}>
10
- <Connecting
11
- route={route}
12
- isLoading={isLoading}
13
- isConnect={isConnect}
14
- isPercentConnect={isPercentConnect}
15
- />
10
+ <Connecting route={route} />
16
11
  </SCProvider>
17
12
  );
18
13
  describe('Test Connecting', () => {
19
14
  let tree;
20
-
21
15
  test('create Connecting', () => {
22
16
  act(() => {
23
17
  tree = renderer.create(wrapComponent());
@@ -26,15 +20,4 @@ describe('Test Connecting', () => {
26
20
  const text = instance.findAllByType(Text);
27
21
  expect(text).toHaveLength(4);
28
22
  });
29
-
30
- test('isLoading = true', () => {
31
- jest.useFakeTimers();
32
- act(() => {
33
- tree = renderer.create(wrapComponent({}, true));
34
- });
35
- jest.runAllTimers();
36
- const instance = tree.root;
37
- const text = instance.findAllByType(Text);
38
- expect(text).toHaveLength(4);
39
- });
40
23
  });
@@ -2,17 +2,13 @@ import React, { memo } from 'react';
2
2
  import { View } from 'react-native';
3
3
  import styles from './DeviceItemStyles';
4
4
  import FImage from '../../FImage';
5
- import _TextInput from '../../Form/TextInput';
5
+ import Text from '../../Text';
6
6
 
7
- const DeviceItem = memo(({ icon, name, setNewName }) => {
7
+ const DeviceItem = memo(({ icon, name }) => {
8
8
  return (
9
9
  <View style={styles.container}>
10
10
  {!!icon && <FImage source={{ uri: icon }} style={styles.iconSensor} />}
11
- <_TextInput
12
- value={name}
13
- textInputStyle={styles.textItem}
14
- onChange={setNewName}
15
- />
11
+ <Text style={styles.textItem}>{name}</Text>
16
12
  </View>
17
13
  );
18
14
  });
@@ -1,14 +1,23 @@
1
1
  import { StyleSheet } from 'react-native';
2
- import { Colors } from '../../../configs';
2
+ import { Constants, Colors } from '../../../configs';
3
+
4
+ const marginItem = 12;
5
+ const marginHorizontal = 5;
6
+ const widthItem = (Constants.width - marginHorizontal * 2 - marginItem) / 2;
7
+ const heightItem = (widthItem / 166) * 60;
3
8
 
4
9
  export default StyleSheet.create({
5
10
  container: {
11
+ paddingHorizontal: 15,
6
12
  borderRadius: 10,
7
13
  width: 250,
14
+ height: heightItem,
8
15
  borderWidth: 1,
9
16
  borderColor: Colors.Gray4,
10
17
  backgroundColor: Colors.White,
11
18
  justifyContent: 'center',
19
+ alignItems: 'center',
20
+ marginBottom: 16,
12
21
  flexDirection: 'row',
13
22
  shadowColor: Colors.Shadow,
14
23
  shadowOffset: {
@@ -27,13 +36,7 @@ export default StyleSheet.create({
27
36
  resizeMode: 'contain',
28
37
  },
29
38
  textItem: {
30
- borderWidth: 0,
31
- borderBottomWidth: 1,
32
- borderBottomColor: Colors.Primary,
33
- textAlign: 'center',
34
- marginTop: -10,
35
- padding: 5,
39
+ marginLeft: 15,
36
40
  fontSize: 16,
37
- height: 50,
38
41
  },
39
42
  });
@@ -1,35 +1,18 @@
1
1
  import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
- import MockAdapter from 'axios-mock-adapter';
4
-
5
3
  import ConnectingProcess from '../index';
6
4
  import { SafeAreaView } from 'react-native';
7
5
  import { SCProvider } from '../../../context';
8
6
  import { mockSCStore } from '../../../context/mockStore';
9
- import api from '../../../utils/Apis/axios';
10
- import { API } from '../../../configs';
11
7
 
12
8
  const wrapComponent = (route) => (
13
9
  <SCProvider initState={mockSCStore({})}>
14
10
  <ConnectingProcess route={route} />
15
11
  </SCProvider>
16
12
  );
17
-
18
- const mock = new MockAdapter(api.axiosInstance);
19
-
20
13
  describe('Test ConnectingProcess', () => {
21
14
  let tree;
22
-
23
- test('render without params', () => {
24
- act(() => {
25
- tree = renderer.create(wrapComponent({}));
26
- });
27
- const instance = tree.root;
28
- const safeAreaView = instance.findAllByType(SafeAreaView);
29
- expect(safeAreaView).toHaveLength(1);
30
- });
31
-
32
- test('create ConnectingProcess with devicePrefixName = SENSOR call api success', async () => {
15
+ test('create ConnectingProcess', () => {
33
16
  const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
34
17
  const devicePrefixName = 'SENSOR';
35
18
  const gateway = { id: 1, name: 'gateway' };
@@ -37,124 +20,8 @@ describe('Test ConnectingProcess', () => {
37
20
  const route = {
38
21
  params: { scan_sensor_data, gateway, station, devicePrefixName },
39
22
  };
40
- mock.onPost(API.SUB_UNIT.SENSOR_SCAN(1)).reply(200);
41
- await act(async () => {
42
- tree = await renderer.create(wrapComponent(route));
43
- });
44
- const instance = tree.root;
45
- const safeAreaView = instance.findAllByType(SafeAreaView);
46
- expect(safeAreaView).toHaveLength(1);
47
- });
48
-
49
- test('create ConnectingProcess with devicePrefixName = SENSOR call api fail', async () => {
50
- const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
51
- const devicePrefixName = 'SENSOR';
52
- const gateway = { id: 1, name: 'gateway' };
53
- const station = { id: 1, icon_kit: 'a', name: 'station' };
54
- const route = {
55
- params: { scan_sensor_data, gateway, station, devicePrefixName },
56
- };
57
- mock.onPost(API.SUB_UNIT.SENSOR_SCAN(1)).reply(400);
58
- await act(async () => {
59
- tree = await renderer.create(wrapComponent(route));
60
- });
61
- const instance = tree.root;
62
- const safeAreaView = instance.findAllByType(SafeAreaView);
63
- expect(safeAreaView).toHaveLength(1);
64
- });
65
-
66
- test('create ConnectingProcess with devicePrefixName = ROBOT call api success', async () => {
67
- const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
68
- const devicePrefixName = 'ROBOT';
69
- const gateway = { id: 1, name: 'gateway' };
70
- const station = { id: 1, icon_kit: 'a', name: 'station' };
71
- const route = {
72
- params: {
73
- scan_sensor_data,
74
- gateway,
75
- station,
76
- devicePrefixName,
77
- unit_id: 1,
78
- unit: {
79
- id: 1,
80
- },
81
- },
82
- };
83
- mock.onPost(API.UNIT.CHIP_SCAN(1)).reply(200);
84
- await act(async () => {
85
- tree = await renderer.create(wrapComponent(route));
86
- });
87
- const instance = tree.root;
88
- const safeAreaView = instance.findAllByType(SafeAreaView);
89
- expect(safeAreaView).toHaveLength(1);
90
- });
91
-
92
- test('create ConnectingProcess with devicePrefixName = ROBOT call api fail', async () => {
93
- const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
94
- const devicePrefixName = 'ROBOT';
95
- const gateway = { id: 1, name: 'gateway' };
96
- const station = { id: 1, icon_kit: 'a', name: 'station' };
97
- const route = {
98
- params: {
99
- scan_sensor_data,
100
- gateway,
101
- station,
102
- devicePrefixName,
103
- unit_id: 1,
104
- unit: {
105
- id: 1,
106
- },
107
- },
108
- };
109
- mock.onPost(API.UNIT.CHIP_SCAN(1)).reply(400);
110
- await act(async () => {
111
- tree = await renderer.create(wrapComponent(route));
112
- });
113
- const instance = tree.root;
114
- const safeAreaView = instance.findAllByType(SafeAreaView);
115
- expect(safeAreaView).toHaveLength(1);
116
- });
117
-
118
- test('create ConnectingProcess with devicePrefixName = LITE call api success', async () => {
119
- const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
120
- const devicePrefixName = 'LITE';
121
- const gateway = { id: 1, name: 'gateway' };
122
- const station = { id: 1, icon_kit: 'a', name: 'station' };
123
- const route = {
124
- params: {
125
- scan_sensor_data,
126
- gateway,
127
- station,
128
- devicePrefixName,
129
- unit_id: 1,
130
- },
131
- };
132
- mock.onPost(API.UNIT.ADD_GATEWAY(1)).reply(200);
133
- await act(async () => {
134
- tree = await renderer.create(wrapComponent(route));
135
- });
136
- const instance = tree.root;
137
- const safeAreaView = instance.findAllByType(SafeAreaView);
138
- expect(safeAreaView).toHaveLength(1);
139
- });
140
-
141
- test('create ConnectingProcess with devicePrefixName = LITE call api fail', async () => {
142
- const scan_sensor_data = { imei: 'SENSOR-afasdfas' };
143
- const devicePrefixName = 'LITE';
144
- const gateway = { id: 1, name: 'gateway' };
145
- const station = { id: 1, icon_kit: 'a', name: 'station' };
146
- const route = {
147
- params: {
148
- scan_sensor_data,
149
- gateway,
150
- station,
151
- devicePrefixName,
152
- unit_id: 1,
153
- },
154
- };
155
- mock.onPost(API.UNIT.ADD_GATEWAY(1)).reply(400);
156
- await act(async () => {
157
- tree = await renderer.create(wrapComponent(route));
23
+ act(() => {
24
+ tree = renderer.create(wrapComponent(route));
158
25
  });
159
26
  const instance = tree.root;
160
27
  const safeAreaView = instance.findAllByType(SafeAreaView);
@@ -2,8 +2,7 @@ import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
3
  import DeviceItem from '../DeviceItem/DeviceItem';
4
4
  import FImage from '../../FImage';
5
- import _TextInput from '../../Form/TextInput';
6
-
5
+ import Text from '../../Text';
7
6
  describe('Test DeviceItem button', () => {
8
7
  let tree;
9
8
  test('create DeviceItem button', () => {
@@ -12,7 +11,7 @@ describe('Test DeviceItem button', () => {
12
11
  });
13
12
  const instance = tree.root;
14
13
  const image = instance.findAllByType(FImage);
15
- const text = instance.findAllByType(_TextInput);
14
+ const text = instance.findAllByType(Text);
16
15
  expect(image).toHaveLength(0);
17
16
  expect(text).toHaveLength(1);
18
17
  });
@@ -6,13 +6,12 @@ import { useNavigation } from '@react-navigation/native';
6
6
  import ImageSuccessfully from '../../Images/Common/SuccessfullyConnected.svg';
7
7
 
8
8
  import Text from '../Text';
9
- import { axiosPatch, axiosPost } from '../../utils/Apis/axios';
9
+ import { axiosPost } from '../../utils/Apis/axios';
10
10
  import { API, Colors } from '../../configs';
11
11
  import styles from './styles';
12
12
  import DeviceItem from './DeviceItem/DeviceItem';
13
13
  import Connecting from '../Connecting';
14
14
  import { useSCContextSelector } from '../../context';
15
- import { ToastBottomHelper } from '../../utils/Utils';
16
15
 
17
16
  const ConnectingProcess = ({ route }) => {
18
17
  const { navigate, goBack } = useNavigation();
@@ -28,31 +27,29 @@ const ConnectingProcess = ({ route }) => {
28
27
  devicePrefixName,
29
28
  wifi_ssid,
30
29
  wifi_pass,
31
- } = route.params || {};
30
+ chip_id,
31
+ } = route.params;
32
32
  const [isLoading, setIsLoading] = useState(true);
33
33
  const [sensor, setSensor] = useState(null);
34
34
  const user = useSCContextSelector((state) => state?.auth?.account?.user);
35
- const [newName, setNewName] = useState('');
36
35
 
37
36
  const ConnectingDevice = useCallback(async () => {
38
37
  setIsLoading(true);
39
38
  switch (devicePrefixName) {
40
- case 'SENSOR': {
41
- const body = { imei: scan_sensor_data?.imei, chip: gateway?.id };
42
- const { success, data } = await axiosPost(
43
- API.SUB_UNIT.SENSOR_SCAN(station.id),
44
- body
45
- );
46
- if (success) {
47
- setSensor(data);
48
- setNewName(data?.name);
49
- } else {
50
- ToastBottomHelper.error(JSON.stringify(data));
51
- goBack();
39
+ case 'SENSOR':
40
+ {
41
+ const body = { imei: scan_sensor_data?.imei, chip: gateway?.id };
42
+ const { success, data } = await axiosPost(
43
+ API.SUB_UNIT.SENSOR_SCAN(station.id),
44
+ body
45
+ );
46
+ if (success) {
47
+ setSensor(data);
48
+ } else {
49
+ goBack();
50
+ }
52
51
  }
53
-
54
52
  break;
55
- }
56
53
  case 'ROBOT': {
57
54
  const { success, data } = await axiosPost(API.UNIT.CHIP_SCAN(unit.id), {
58
55
  imei: gateway?.imei,
@@ -65,26 +62,20 @@ const ConnectingProcess = ({ route }) => {
65
62
  });
66
63
  if (success) {
67
64
  setSensor(data);
68
- setNewName(data?.name);
69
65
  } else {
70
- ToastBottomHelper.error(JSON.stringify(data));
71
66
  goBack();
72
67
  }
73
68
  break;
74
69
  }
75
70
  case 'LITE': {
76
- const { success, data } = await axiosPost(
77
- API.UNIT.ADD_GATEWAY(unit_id),
78
- {
79
- imei: gateway?.imei,
80
- chip_name: gateway?.model,
81
- }
82
- );
71
+ const { success } = await axiosPost(API.UNIT.ADD_GATEWAY(unit_id), {
72
+ chip: chip_id,
73
+ imei: gateway?.imei,
74
+ chip_name: gateway?.model,
75
+ });
83
76
  if (success) {
84
77
  setSensor({ name: gateway?.model });
85
- setNewName(gateway?.model);
86
78
  } else {
87
- ToastBottomHelper.error(JSON.stringify(data));
88
79
  goBack();
89
80
  }
90
81
  break;
@@ -104,6 +95,7 @@ const ConnectingProcess = ({ route }) => {
104
95
  wifi_pass,
105
96
  user?.phone_number,
106
97
  unit_id,
98
+ chip_id,
107
99
  ]);
108
100
 
109
101
  const ConnectingSuccess = useCallback(() => {
@@ -118,46 +110,12 @@ const ConnectingProcess = ({ route }) => {
118
110
  station?.name !== undefined ? '- ' + station?.name : ''
119
111
  }`}
120
112
  </Text>
121
- <DeviceItem
122
- icon={sensor?.icon_kit}
123
- name={newName}
124
- setNewName={setNewName}
125
- />
113
+ <DeviceItem icon={sensor?.icon_kit} name={sensor?.name} />
126
114
  </View>
127
115
  );
128
- }, [newName, sensor?.icon_kit, station?.name, t, unit?.name, unit_name]);
129
-
130
- const handleDone = useCallback(async () => {
131
- let result, message;
132
- switch (devicePrefixName) {
133
- case 'SENSOR': {
134
- const { success, data } = await axiosPatch(
135
- API.SENSOR.SENSOR_DETAIL(sensor?.id),
136
- {
137
- name: newName,
138
- }
139
- );
140
- result = success;
141
- message = data;
142
- break;
143
- }
144
- case 'ROBOT':
145
- case 'LITE': {
146
- const { success, data } = await axiosPatch(
147
- API.CHIP.CHIP_DETAIL(sensor?.id),
148
- {
149
- name: newName,
150
- }
151
- );
152
- result = success;
153
- message = data;
154
- break;
155
- }
156
- }
116
+ }, [sensor?.icon_kit, sensor?.name, station?.name, t, unit?.name, unit_name]);
157
117
 
158
- if (!result) {
159
- ToastBottomHelper.error(JSON.stringify(message));
160
- }
118
+ const handleDone = useCallback(() => {
161
119
  navigate(Routes.UnitStack, {
162
120
  screen: Routes.UnitDetail,
163
121
  params: {
@@ -167,15 +125,7 @@ const ConnectingProcess = ({ route }) => {
167
125
  stationId: station?.id,
168
126
  },
169
127
  });
170
- }, [
171
- devicePrefixName,
172
- navigate,
173
- newName,
174
- sensor?.id,
175
- station?.id,
176
- unit,
177
- unit_id,
178
- ]);
128
+ }, [navigate, station?.id, unit, unit_id]);
179
129
 
180
130
  useEffect(() => {
181
131
  ConnectingDevice();