@eohjsc/react-native-smart-city 0.3.6 → 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 (289) 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/OnOffSmartLock/AutoLock/__test__/index.test.js +0 -4
  9. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/ItemPasscode.js +1 -1
  10. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +0 -14
  11. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/index.js +0 -1
  12. package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +2 -8
  13. package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +10 -10
  14. package/src/commons/ActionGroup/OnOffTemplate/index.js +2 -3
  15. package/src/commons/ActionGroup/SliderRangeTemplate.js +2 -6
  16. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +3 -7
  17. package/src/commons/ActionGroup/StatesGridActionTemplate.js +8 -22
  18. package/src/commons/ActionGroup/TimerActionTemplate.js +3 -11
  19. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +5 -1
  20. package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +4 -53
  21. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +14 -14
  22. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +78 -53
  23. package/src/commons/ActionGroup/__test__/OneBigButtonTemplate.test.js +20 -36
  24. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -58
  25. package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -49
  26. package/src/commons/ActionGroup/__test__/index.test.js +0 -135
  27. package/src/commons/Auth/AccountList.js +1 -1
  28. package/src/commons/Automate/ItemAutomate.js +3 -1
  29. package/src/commons/Connecting/__test__/Connecting.test.js +2 -19
  30. package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +3 -7
  31. package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +11 -8
  32. package/src/commons/ConnectingProcess/__test__/Connecting.test.js +3 -136
  33. package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +2 -3
  34. package/src/commons/ConnectingProcess/index.js +26 -76
  35. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +13 -16
  36. package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +1 -1
  37. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +5 -0
  38. package/src/commons/Device/ConnectedViewHeader.js +1 -1
  39. package/src/commons/Device/HistoryChart.js +3 -7
  40. package/src/commons/Device/ItemDevice.js +12 -19
  41. package/src/commons/Device/LinearChart.js +0 -15
  42. package/src/commons/Device/PMSensor/PMSensorIndicatior.js +12 -16
  43. package/src/commons/Device/PMSensor/PMSensorIndicatorStyles.js +0 -3
  44. package/src/commons/Device/SonosSpeaker/index.js +1 -1
  45. package/src/commons/Device/WaterQualitySensor/ListQualityIndicator.js +0 -1
  46. package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +2 -7
  47. package/src/commons/Explore/__test__/CityItem.test.js +54 -33
  48. package/src/commons/Form/CurrencyInput.js +1 -15
  49. package/src/commons/Form/TextInputPassword.js +1 -1
  50. package/src/commons/FullLoading/index.js +1 -2
  51. package/src/commons/Header/HeaderCustom.js +1 -2
  52. package/src/commons/HeaderAni/index.js +1 -6
  53. package/src/commons/HorizontalPicker/index.js +2 -2
  54. package/src/commons/MediaPlayerDetail/Styles/MediaPlayerDetailStyles.js +6 -0
  55. package/src/commons/MediaPlayerDetail/index.js +47 -25
  56. package/src/commons/MenuActionAddnew/index.js +0 -1
  57. package/src/commons/MenuActionList/index.js +0 -1
  58. package/src/commons/MenuActionMore/index.js +1 -1
  59. package/src/commons/PreventAccess/index.js +1 -9
  60. package/src/commons/Sharing/MemberList.js +2 -10
  61. package/src/commons/Sharing/WrapHeaderScrollable.js +0 -2
  62. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +1 -0
  63. package/src/commons/SubUnit/Favorites/index.js +3 -2
  64. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +35 -8
  65. package/src/commons/SubUnit/OneTap/index.js +2 -1
  66. package/src/commons/SubUnit/ShortDetail.js +9 -25
  67. package/src/commons/SubUnit/__test__/Item.test.js +1 -0
  68. package/src/commons/SubUnit/__test__/ShortDetail.test.js +2 -9
  69. package/src/commons/Unit/SharedUnit.js +0 -1
  70. package/src/commons/Unit/__test__/SharedUnit.test.js +183 -38
  71. package/src/commons/UnitSummary/ConfigHistoryChart/index.js +13 -2
  72. package/src/commons/UnitSummary/ConfigHistoryChart.js +13 -22
  73. package/src/commons/WheelDateTimePicker/index.js +3 -4
  74. package/src/configs/API.js +143 -87
  75. package/src/configs/Constants.js +1 -57
  76. package/src/configs/SCConfig.js +0 -4
  77. package/src/context/actionType.ts +0 -8
  78. package/src/context/mockStore.ts +0 -10
  79. package/src/context/reducer.ts +2 -38
  80. package/src/hooks/Common/index.js +0 -2
  81. package/src/hooks/Common/useGetIdUser.js +5 -1
  82. package/src/hooks/Common/useSensorsStatus.js +4 -4
  83. package/src/hooks/useReceiveNotifications.js +5 -9
  84. package/src/iot/Monitor.js +2 -3
  85. package/src/iot/RemoteControl/Bluetooth.js +1 -1
  86. package/src/iot/RemoteControl/GoogleHome.js +49 -75
  87. package/src/iot/RemoteControl/Internet.js +1 -1
  88. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +48 -95
  89. package/src/iot/RemoteControl/__test__/Internet.test.js +7 -18
  90. package/src/iot/RemoteControl/__test__/LgThinq.test.js +177 -36
  91. package/src/iot/RemoteControl/index.js +52 -52
  92. package/src/navigations/UnitStack.js +20 -11
  93. package/src/screens/AQIGuide/index.js +1 -1
  94. package/src/screens/ActivityLog/FilterPopup.js +0 -2
  95. package/src/screens/ActivityLog/__test__/index.test.js +23 -38
  96. package/src/screens/ActivityLog/hooks/__test__/index.test.js +90 -51
  97. package/src/screens/ActivityLog/hooks/index.js +1 -1
  98. package/src/screens/ActivityLog/index.js +2 -2
  99. package/src/screens/AddCommon/SelectSubUnit.js +0 -1
  100. package/src/screens/AddCommon/SelectUnit.js +0 -1
  101. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +24 -13
  102. package/src/screens/AddCommon/__test__/SelectUnit.test.js +33 -9
  103. package/src/screens/AddLocationMaps/index.js +5 -9
  104. package/src/screens/AddNewAction/SelectAction.js +8 -8
  105. package/src/screens/AddNewAction/SelectSensorDevices.js +2 -8
  106. package/src/screens/AddNewAction/SetupSensor.js +7 -7
  107. package/src/screens/AddNewAction/__test__/SelectAction.test.js +91 -10
  108. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +26 -40
  109. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +1 -3
  110. package/src/screens/AddNewAutoSmart/index.js +2 -5
  111. package/src/screens/AddNewDevice/ConnectingDevices.js +3 -3
  112. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +34 -42
  113. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +4 -0
  114. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +22 -22
  115. package/src/screens/AddNewDevice/hooks/ConnectDevices.js +1 -1
  116. package/src/screens/AddNewDevice/index.js +0 -1
  117. package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +17 -23
  118. package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +40 -46
  119. package/src/screens/AddNewGateway/PlugAndPlay/__test__/GatewayWifiList.test.js +10 -64
  120. package/src/screens/AddNewGateway/SelectGateway.js +0 -1
  121. package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -2
  122. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +6 -4
  123. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +4 -0
  124. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +29 -5
  125. package/src/screens/AddNewGateway/__test__/SelectGateway.test.js +4 -0
  126. package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +4 -0
  127. package/src/screens/AddNewGateway/index.js +0 -1
  128. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +24 -10
  129. package/src/screens/AddNewOneTap/index.js +2 -3
  130. package/src/screens/AllCamera/index.js +4 -4
  131. package/src/screens/Automate/MultiUnits.js +8 -8
  132. package/src/screens/Automate/__test__/MultiUnits.test.js +9 -6
  133. package/src/screens/Automate/__test__/index.test.js +12 -7
  134. package/src/screens/Automate/index.js +3 -5
  135. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +8 -36
  136. package/src/screens/ConfirmUnitDeletion/index.js +1 -7
  137. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +22 -71
  138. package/src/screens/Device/EditDevice/index.js +15 -17
  139. package/src/screens/Device/__test__/detail.test.js +86 -33
  140. package/src/screens/Device/components/DetailHistoryChart.js +1 -1
  141. package/src/screens/Device/components/SensorConnectStatusViewHeader.js +0 -1
  142. package/src/screens/Device/components/SensorDisplayItem.js +2 -5
  143. package/src/screens/Device/detail.js +24 -80
  144. package/src/screens/Device/hooks/useDisconnectedDevice.js +4 -4
  145. package/src/screens/Device/hooks/useFavoriteDevice.js +9 -5
  146. package/src/screens/DeviceInfo/__test__/index.test.js +2 -0
  147. package/src/screens/EditActionsList/index.js +1 -1
  148. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -6
  149. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +19 -7
  150. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +2 -20
  151. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +23 -40
  152. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  153. package/src/screens/EmergencySetting/index.js +1 -4
  154. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +25 -41
  155. package/src/screens/Explore/index.js +0 -2
  156. package/src/screens/GuestInfo/__test__/index.test.js +41 -14
  157. package/src/screens/GuestInfo/components/RecurringDetail.js +0 -1
  158. package/src/screens/GuestInfo/components/TemporaryDetail.js +2 -2
  159. package/src/screens/HanetCamera/Detail.js +1 -1
  160. package/src/screens/HanetCamera/__test__/CaptureFaceID.test.js +12 -8
  161. package/src/screens/HanetCamera/__test__/Detail.test.js +42 -27
  162. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +5 -8
  163. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +32 -10
  164. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -3
  165. package/src/screens/HanetCamera/hooks/__test__/useHanetCheckinData.test.js +35 -43
  166. package/src/screens/HanetCamera/hooks/__test__/useHanetPlaceMembers.test.js +21 -10
  167. package/src/screens/HanetCamera/hooks/useHanetCheckinData.js +11 -11
  168. package/src/screens/HanetCamera/hooks/useHanetPlaceMembers.js +11 -11
  169. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +22 -33
  170. package/src/screens/ManageAccess/hooks/__test__/useManageAccess.test.js +45 -44
  171. package/src/screens/ManageAccess/hooks/index.js +4 -7
  172. package/src/screens/ManageAccess/index.js +1 -2
  173. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +12 -35
  174. package/src/screens/MoveToAnotherSubUnit/index.js +6 -6
  175. package/src/screens/Notification/__test__/Notification.test.js +25 -14
  176. package/src/screens/Notification/__test__/NotificationItem.test.js +7 -8
  177. package/src/screens/Notification/components/NotificationItem.js +20 -17
  178. package/src/screens/Notification/index.js +2 -9
  179. package/src/screens/PlayBackCamera/Timer.js +2 -2
  180. package/src/screens/PlayBackCamera/__test__/index.test.js +2 -87
  181. package/src/screens/PlayBackCamera/index.js +6 -22
  182. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +20 -7
  183. package/src/screens/ScanChipQR/components/QRScan/index.js +0 -1
  184. package/src/screens/ScanChipQR/hooks/index.js +16 -15
  185. package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +24 -8
  186. package/src/screens/ScriptDetail/__test__/index.test.js +86 -17
  187. package/src/screens/ScriptDetail/index.js +14 -19
  188. package/src/screens/SelectUnit/__test__/index.test.js +55 -12
  189. package/src/screens/SelectUnit/index.js +4 -9
  190. package/src/screens/SetSchedule/index.js +11 -15
  191. package/src/screens/SharedUnit/__test__/TabHeader.test.js +2 -0
  192. package/src/screens/SharedUnit/index.js +0 -2
  193. package/src/screens/Sharing/Components/SensorItem.js +12 -10
  194. package/src/screens/Sharing/InfoMemberUnit.js +1 -1
  195. package/src/screens/Sharing/MemberList.js +11 -12
  196. package/src/screens/Sharing/SelectPermission.js +76 -121
  197. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +29 -47
  198. package/src/screens/Sharing/__test__/MemberList.test.js +127 -13
  199. package/src/screens/Sharing/__test__/SelectPermission.test.js +38 -28
  200. package/src/screens/Sharing/__test__/SelectUser.test.js +38 -17
  201. package/src/screens/Sharing/hooks/index.js +0 -3
  202. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -3
  203. package/src/screens/SmartIr/components/SelectBrand.js +1 -1
  204. package/src/screens/SubUnit/AddSubUnit.js +17 -23
  205. package/src/screens/SubUnit/Detail.js +2 -1
  206. package/src/screens/SubUnit/EditSubUnit.js +13 -15
  207. package/src/screens/SubUnit/ManageSubUnit.js +7 -13
  208. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +89 -29
  209. package/src/screens/SubUnit/__test__/Detail.test.js +8 -31
  210. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +89 -21
  211. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +1 -27
  212. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +45 -48
  213. package/src/screens/SubUnit/hooks/useManageSubUnit.js +7 -7
  214. package/src/screens/SyncLGDevice/AddLGDevice.js +0 -1
  215. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +91 -22
  216. package/src/screens/TDSGuide/index.js +1 -4
  217. package/src/screens/UVIndexGuide/index.js +1 -1
  218. package/src/screens/Unit/ChooseLocation.js +14 -7
  219. package/src/screens/Unit/Detail.js +75 -30
  220. package/src/screens/Unit/ManageUnit.js +0 -1
  221. package/src/screens/Unit/SelectAddress.js +23 -45
  222. package/src/screens/Unit/SmartAccount.js +4 -4
  223. package/src/screens/Unit/Station/index.js +0 -4
  224. package/src/screens/Unit/Summaries.js +2 -18
  225. package/src/screens/Unit/__test__/CheckSendEmail.test.js +29 -24
  226. package/src/screens/Unit/__test__/ChooseLocation.test.js +14 -27
  227. package/src/screens/Unit/__test__/Detail.test.js +200 -99
  228. package/src/screens/Unit/__test__/ManageUnit.test.js +42 -18
  229. package/src/screens/Unit/__test__/SelectAddress.test.js +49 -159
  230. package/src/screens/Unit/__test__/SmartAccount.test.js +9 -17
  231. package/src/screens/Unit/__test__/SmartAccountItem.test.js +1 -0
  232. package/src/screens/Unit/components/MyUnitDevice/index.js +4 -4
  233. package/src/screens/Unit/components/SharedUnit/index.js +0 -1
  234. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
  235. package/src/screens/Unit/components/__test__/SharedUnit.test.js +34 -31
  236. package/src/screens/Unit/styles.js +0 -4
  237. package/src/screens/UnitSummary/__test__/index.test.js +30 -91
  238. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +2 -31
  239. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/__test__/index.test.js +4 -7
  240. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/index.js +13 -2
  241. package/src/screens/UnitSummary/components/PowerConsumption/__test__/ItemPower.test.js +1 -0
  242. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -14
  243. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -11
  244. package/src/screens/UnitSummary/components/RunningDevices/index.js +10 -7
  245. package/src/screens/UnitSummary/components/Temperature/index.js +4 -4
  246. package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +2 -10
  247. package/src/screens/UnitSummary/index.js +1 -15
  248. package/src/screens/WaterQualityGuide/index.js +1 -1
  249. package/src/utils/Apis/axios.js +31 -54
  250. package/src/utils/Converter/time.js +18 -0
  251. package/src/utils/I18n/translations/en.json +1 -7
  252. package/src/utils/I18n/translations/vi.json +1 -8
  253. package/src/utils/Route/index.js +0 -1
  254. package/src/utils/Utils.js +7 -11
  255. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/ItemPasscode.test.js +0 -24
  256. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +0 -77
  257. package/src/commons/Calendar/__test__/Calendar.test.js +0 -33
  258. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +0 -58
  259. package/src/commons/FieldTemplate/ChooseUserField/ChooseFieldStyles.js +0 -25
  260. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +0 -96
  261. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopupStyles.js +0 -39
  262. package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +0 -118
  263. package/src/commons/FieldTemplate/ChooseUserField/index.js +0 -62
  264. package/src/commons/FieldTemplate/PasscodeField/PasscodeFieldStyles.js +0 -30
  265. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +0 -90
  266. package/src/commons/FieldTemplate/PasscodeField/index.js +0 -43
  267. package/src/commons/FieldTemplate/ScheduleField/ScheduleFieldStyles.js +0 -13
  268. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +0 -179
  269. package/src/commons/FieldTemplate/ScheduleField/index.js +0 -176
  270. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +0 -62
  271. package/src/hooks/Common/useGGHomeDeviceConnected.js +0 -16
  272. package/src/hooks/IoT/__test__/useGGHomeConnection.test.js +0 -198
  273. package/src/hooks/IoT/__test__/useRemoteControl.test.js +0 -198
  274. package/src/hooks/IoT/index.js +0 -4
  275. package/src/hooks/IoT/useGGHomeConnection.js +0 -91
  276. package/src/hooks/IoT/useRemoteControl.js +0 -79
  277. package/src/hooks/index.js +0 -4
  278. package/src/navigations/UnitStackStyles.js +0 -21
  279. package/src/screens/Sharing/__test__/MemberList2.test.js +0 -80
  280. package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +0 -28
  281. package/src/screens/SideMenuDetail/__test__/index.test.js +0 -154
  282. package/src/screens/SideMenuDetail/index.js +0 -148
  283. package/src/screens/Unit/__test__/Summaries.test.js +0 -100
  284. package/src/screens/Unit/components/MyAllUnit/__test__/MyAllUnit.test.js +0 -36
  285. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -54
  286. package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +0 -50
  287. package/src/utils/Permission/common.js +0 -67
  288. package/src/utils/Setting/Location.js +0 -30
  289. package/src/utils/__test__/Utils.test.js +0 -12
@@ -179,10 +179,8 @@ const ScriptDetail = ({ route }) => {
179
179
  }, []);
180
180
 
181
181
  const getScriptDetail = useCallback(async () => {
182
- const { success, data: automateData } = await axiosGet(
183
- API.AUTOMATE.SCRIPT(id)
184
- );
185
- success && setData(automateData?.script_actions || []);
182
+ const { success, data } = await axiosGet(API.AUTOMATE.SCRIPT(id));
183
+ success && setData(data?.script_actions || []);
186
184
  }, [id]);
187
185
 
188
186
  const onPressEdit = useCallback(() => {
@@ -191,19 +189,18 @@ const ScriptDetail = ({ route }) => {
191
189
  }, [data]);
192
190
 
193
191
  const onPressAddAction = useCallback(() => {
194
- const navParams = {
192
+ const params = {
195
193
  unit,
196
194
  scriptName,
197
195
  automateId: id,
198
196
  type,
199
- oldType: type,
200
197
  isCreateNewAction: true,
201
- title: AUTOMATE_SELECT.SELECT_DEVICE,
198
+ title: AUTOMATE_SELECT.SELECT_DEVICES,
202
199
  automate,
203
200
  };
204
201
  navigate(
205
202
  isMultiUnits ? Routes.SelectUnit : Routes.SelectSensorDevices,
206
- navParams
203
+ params
207
204
  );
208
205
  }, [unit, scriptName, id, type, navigate, isMultiUnits, automate]);
209
206
 
@@ -361,21 +358,21 @@ const ScriptDetail = ({ route }) => {
361
358
  weekday_repeat,
362
359
  } = automate;
363
360
  if (type === AUTOMATE_TYPE.VALUE_CHANGE) {
364
- let text;
361
+ let textCondition;
365
362
  if (condition === '>') {
366
- text = 'higher_than';
363
+ textCondition = 'higher_than';
367
364
  } else if (condition === '<') {
368
- text = 'lower_than';
365
+ textCondition = 'lower_than';
369
366
  } else if (condition === '=') {
370
- text = 'equal';
367
+ textCondition = 'equal';
371
368
  }
372
- return `${config_name} ${t(text)} ${value}`;
369
+ return `${config_name} ${t(textCondition)} ${value}`;
373
370
  } else if (type === AUTOMATE_TYPE.SCHEDULE) {
374
371
  const time =
375
- time_repeat?.length >= 8
376
- ? time_repeat.substring(0, time_repeat?.length - 3)
372
+ time_repeat.length >= 8
373
+ ? time_repeat.substring(0, time_repeat.length - 3)
377
374
  : time_repeat;
378
- const date = date_repeat?.split('-').reverse().join('/');
375
+ const date = date_repeat.split('-').reverse().join('/');
379
376
  const weekday = {
380
377
  1: t('mon'),
381
378
  2: t('tue'),
@@ -392,9 +389,7 @@ const ScriptDetail = ({ route }) => {
392
389
  return `${t('every_day_at', { time })}`;
393
390
  } else if (repeat === REPEAT_OPTIONS.EVERYWEEK) {
394
391
  //sort 0 is last number, exp: [1,3,5,0]
395
- const newWeekdayRepeat = weekday_repeat.map((item) =>
396
- parseInt(item, 10)
397
- );
392
+ const newWeekdayRepeat = weekday_repeat.map((item) => parseInt(item));
398
393
  const sortWeekday = newWeekdayRepeat.sort((a, b) => {
399
394
  if (a !== 0 && b === 0) {
400
395
  return -1;
@@ -2,18 +2,14 @@ import React, { useState } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import { useRoute } from '@react-navigation/native';
4
4
  import { act, create } from 'react-test-renderer';
5
- import MockAdapter from 'axios-mock-adapter';
6
-
5
+ import axios from 'axios';
7
6
  import SelectUnit from '../';
8
7
  import { SCProvider } from '../../../context';
9
8
  import { mockSCStore } from '../../../context/mockStore';
10
9
  import { TESTID } from '../../../configs/Constants';
11
10
  import Routes from '../../../utils/Route';
12
- import api from '../../../utils/Apis/axios';
13
- import { API } from '../../../configs';
14
-
15
- const mock = new MockAdapter(api.axiosInstance);
16
11
 
12
+ jest.mock('axios');
17
13
  const mockSetState = jest.fn();
18
14
  const mockDispatch = jest.fn();
19
15
  const mockGoBack = jest.fn();
@@ -51,6 +47,7 @@ describe('Test Select unit screen', () => {
51
47
  beforeEach(() => {
52
48
  mockSetState.mockClear();
53
49
  mockNavigate.mockClear();
50
+ axios.get.mockClear();
54
51
  });
55
52
 
56
53
  it('Test render', async () => {
@@ -75,7 +72,9 @@ describe('Test Select unit screen', () => {
75
72
  },
76
73
  ],
77
74
  };
78
- mock.onGet(API.AUTOMATE.GET_ALL_UNITS()).reply(200, response.data);
75
+ axios.get.mockImplementation(async () => {
76
+ return response;
77
+ });
79
78
  useState.mockImplementation((init) => [response.data, mockSetState]);
80
79
  await act(async () => {
81
80
  tree = await create(wrapComponent());
@@ -100,8 +99,12 @@ describe('Test Select unit screen', () => {
100
99
  isCreateNewAction: false,
101
100
  },
102
101
  });
103
-
104
- mock.onGet(API.AUTOMATE.GET_ALL_UNITS()).reply(400);
102
+ const response = {
103
+ status: 400,
104
+ };
105
+ axios.get.mockImplementation(async () => {
106
+ return response;
107
+ });
105
108
 
106
109
  await act(async () => {
107
110
  tree = await create(wrapComponent());
@@ -114,8 +117,8 @@ describe('Test Select unit screen', () => {
114
117
  await TouchableOpacities[1].props.onPress();
115
118
  await TouchableOpacities[2].props.onPress();
116
119
  });
120
+ expect(mockSetState).toBeCalledTimes(1);
117
121
  });
118
-
119
122
  it('Test form ScriptDetail onPressAddAction to Select-unit', async () => {
120
123
  useRoute.mockReturnValue({
121
124
  params: {
@@ -139,7 +142,9 @@ describe('Test Select unit screen', () => {
139
142
  },
140
143
  ],
141
144
  };
142
- mock.onGet(API.AUTOMATE.GET_ALL_UNITS()).reply(200, response.data);
145
+ axios.get.mockImplementation(async () => {
146
+ return response;
147
+ });
143
148
 
144
149
  await act(async () => {
145
150
  tree = await create(wrapComponent());
@@ -147,6 +152,16 @@ describe('Test Select unit screen', () => {
147
152
 
148
153
  const instance = tree.root;
149
154
 
155
+ const TouchableOpacities = instance.findAll(
156
+ (el) =>
157
+ el.props.testID === TESTID.ITEM_UNIT && el.type === TouchableOpacity
158
+ );
159
+
160
+ expect(TouchableOpacities).toHaveLength(1);
161
+ await act(async () => {
162
+ await TouchableOpacities[0].props.onPress();
163
+ });
164
+
150
165
  const buttonContinue = instance.findAll(
151
166
  (el) =>
152
167
  el.props.testID === TESTID.BOTTOM_VIEW_MAIN &&
@@ -157,6 +172,34 @@ describe('Test Select unit screen', () => {
157
172
  await act(async () => {
158
173
  await buttonContinue[0].props.onPress();
159
174
  });
175
+ expect(mockNavigate).toBeCalledWith(Routes.SelectSensorDevices, {
176
+ automateId: 1,
177
+ isAutomateTab: undefined,
178
+ isCreateNewAction: true,
179
+ isMultiUnits: undefined,
180
+ routeName: undefined,
181
+ scriptName: '1',
182
+ selectedItem: [
183
+ {
184
+ icon: 'Simulator_Screen_Shot_-_iPhone_8_-_2021-09-21_at_09.16.58.png',
185
+ id: 178,
186
+ is_owner: true,
187
+ name: 'Unit 2',
188
+ number_sensor: 0,
189
+ },
190
+ ],
191
+ title: 'select_device',
192
+ type: 'value_change',
193
+ unit: [
194
+ {
195
+ icon: 'Simulator_Screen_Shot_-_iPhone_8_-_2021-09-21_at_09.16.58.png',
196
+ id: 178,
197
+ is_owner: true,
198
+ name: 'Unit 2',
199
+ number_sensor: 0,
200
+ },
201
+ ],
202
+ });
160
203
  });
161
204
 
162
205
  it('Test handleOnGoBackAndClose', async () => {
@@ -192,7 +235,7 @@ describe('Test Select unit screen', () => {
192
235
  isCreateNewAction: true,
193
236
  isMultiUnits: undefined,
194
237
  name: '1',
195
- type: undefined,
238
+ type: 'value_change',
196
239
  unit: {
197
240
  id: 1,
198
241
  },
@@ -26,10 +26,9 @@ const SelectUnit = () => {
26
26
  scriptName,
27
27
  routeName,
28
28
  isCreateNewAction,
29
+ unit,
29
30
  title,
30
31
  automate,
31
- oldType,
32
- unit,
33
32
  } = params;
34
33
  const [data, setData] = useState([]);
35
34
  const [selectedItem, setSelectedItem] = useState(data[0]);
@@ -39,11 +38,9 @@ const SelectUnit = () => {
39
38
  };
40
39
 
41
40
  const getAllUnits = useCallback(async () => {
42
- const { success, data: automateData } = await axiosGet(
43
- API.AUTOMATE.GET_ALL_UNITS()
44
- );
41
+ const { success, data } = await axiosGet(API.AUTOMATE.GET_ALL_UNITS());
45
42
  if (success) {
46
- setData(automateData);
43
+ setData(data);
47
44
  }
48
45
  }, []);
49
46
 
@@ -52,7 +49,7 @@ const SelectUnit = () => {
52
49
  navigate(Routes.ScriptDetail, {
53
50
  id: automateId,
54
51
  name: scriptName,
55
- type: oldType,
52
+ type: type,
56
53
  havePermission: true,
57
54
  unit,
58
55
  isMultiUnits,
@@ -80,7 +77,6 @@ const SelectUnit = () => {
80
77
  unit: selectedItem,
81
78
  automateId,
82
79
  scriptName,
83
- oldType,
84
80
  }
85
81
  );
86
82
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -159,7 +155,6 @@ const SelectUnit = () => {
159
155
  keyExtractor={(item) => item.id}
160
156
  data={data}
161
157
  renderItem={renderItem}
162
- scrollIndicatorInsets={{ right: 1 }}
163
158
  />
164
159
  </View>
165
160
  </WrapHeaderScrollable>
@@ -12,12 +12,20 @@ import RepeatOptionsPopup from './components/RepeatOptionsPopup';
12
12
  import RowItem from './components/RowItem';
13
13
  import SelectWeekday from './components/SelectWeekday';
14
14
  import { useBoolean } from '../../hooks/Common';
15
- import { useTranslations } from '../../hooks/Common/useTranslations';
15
+ import t, { useTranslations } from '../../hooks/Common/useTranslations';
16
16
  import styles from './styles/indexStyles';
17
17
  import { REPEAT_OPTIONS } from './components/RepeatOptionsPopup';
18
18
  import Routes from '../../utils/Route';
19
19
  import { popAction } from '../../navigations/utils';
20
20
 
21
+ const getDateString = (date) => {
22
+ const today = moment();
23
+ if (date.isSame(today, 'day')) {
24
+ return date.format(`[${t('today')}], D MMMM YYYY `);
25
+ }
26
+ return date.format('ddd, D MMMM YYYY');
27
+ };
28
+
21
29
  const SetSchedule = ({ route }) => {
22
30
  const t = useTranslations();
23
31
  const {
@@ -28,19 +36,10 @@ const SetSchedule = ({ route }) => {
28
36
  automateId, // wilk=l remove later
29
37
  automate = {},
30
38
  scriptName,
31
- oldType,
32
39
  } = route.params;
33
40
  const { navigate, dispatch, goBack } = useNavigation();
34
41
  const [repeat, setRepeat] = useState(automate.repeat || REPEAT_OPTIONS.ONCE);
35
42
 
36
- const getDateString = (date) => {
37
- const today = moment();
38
- if (date.isSame(today, 'day')) {
39
- return date.format(`[${t('today')}], D MMMM YYYY `);
40
- }
41
- return date.format('ddd, D MMMM YYYY');
42
- };
43
-
44
43
  const [time, setTime] = useState(
45
44
  automate.time_repeat
46
45
  ? moment(automate.time_repeat, 'HH:mm:ss')
@@ -120,7 +119,7 @@ const SetSchedule = ({ route }) => {
120
119
  navigate(Routes.ScriptDetail, {
121
120
  id: automateId,
122
121
  name: scriptName,
123
- type: oldType,
122
+ type: type,
124
123
  havePermission: true,
125
124
  unit,
126
125
  isMultiUnits,
@@ -137,10 +136,7 @@ const SetSchedule = ({ route }) => {
137
136
  <>
138
137
  <View style={styles.container}>
139
138
  <HeaderCustom isShowClose onClose={onClose} />
140
- <ScrollView
141
- contentContainerStyle={styles.scollView}
142
- scrollIndicatorInsets={{ right: 1 }}
143
- >
139
+ <ScrollView contentContainerStyle={styles.scollView}>
144
140
  <Text type="H2" bold style={styles.title}>
145
141
  {t('set_schedule')}
146
142
  </Text>
@@ -6,6 +6,8 @@ import { TouchableOpacity } from 'react-native';
6
6
  import { SCProvider } from '../../../context';
7
7
  import { mockSCStore } from '../../../context/mockStore';
8
8
 
9
+ jest.mock('axios');
10
+
9
11
  const wrapComponent = (current, getCurrentTab, showModal, textFilter) => (
10
12
  <SCProvider initState={mockSCStore({})}>
11
13
  <TabHeader
@@ -139,7 +139,6 @@ const Shared = () => {
139
139
  keyExtractor={(item, index) => item.id.toString()}
140
140
  ItemSeparatorComponent={() => <View style={styles.seperator} />}
141
141
  contentContainerStyle={styles.scrollView}
142
- scrollIndicatorInsets={{ right: 1 }}
143
142
  />
144
143
  ) : (
145
144
  <FlatList
@@ -163,7 +162,6 @@ const Shared = () => {
163
162
  keyExtractor={(item, index) => item.id.toString()}
164
163
  ItemSeparatorComponent={() => <View style={styles.seperator} />}
165
164
  contentContainerStyle={styles.scrollView}
166
- scrollIndicatorInsets={{ right: 1 }}
167
165
  />
168
166
  )}
169
167
  </View>
@@ -42,20 +42,20 @@ const SensorItem = ({
42
42
  }
43
43
  };
44
44
 
45
- const handleOnTickedChild = (group, checked, childId) => {
45
+ const handleOnTickedChild = (idGroup, isChecked, childId) => {
46
46
  const dataTemp = [...dataConfig];
47
47
  const indexTemp = dataTemp.findIndex((i) => i.id === childId);
48
48
  dataTemp.splice(indexTemp, 1, {
49
49
  ...dataTemp[indexTemp],
50
- isChecked: checked,
50
+ isChecked,
51
51
  });
52
52
  setDataConfig(dataTemp);
53
53
  onTickedChild &&
54
54
  onTickedChild(
55
- group,
55
+ idGroup,
56
56
  id,
57
57
  childId,
58
- checked,
58
+ isChecked,
59
59
  Boolean(dataTemp[indexTemp]?.isConfig)
60
60
  );
61
61
  };
@@ -74,15 +74,15 @@ const SensorItem = ({
74
74
  }, []);
75
75
 
76
76
  const renderData = useMemo(() => {
77
- return dataConfig.map((i) => (
77
+ return dataConfig.map((item) => (
78
78
  <TitleCheckBox
79
- title={i.name}
79
+ title={item.name}
80
80
  wrapCheckBoxStyle={styles.wrapCheckBoxStyle}
81
81
  onPress={handleOnTickedChild}
82
- isChecked={i.isChecked}
83
- id={i.id}
82
+ isChecked={item.isChecked}
83
+ id={item.id}
84
84
  titleStyle={styles.titleStyle}
85
- key={i.id}
85
+ key={item.id}
86
86
  idGroup={idGroup}
87
87
  />
88
88
  ));
@@ -95,7 +95,9 @@ const SensorItem = ({
95
95
  source={{ uri: icon_kit }}
96
96
  style={styles.viewLeft}
97
97
  tintColor={
98
- dataConfig.some((i) => i.isChecked) ? Colors.Primary : Colors.Gray
98
+ dataConfig.some((item) => item.isChecked)
99
+ ? Colors.Primary
100
+ : Colors.Gray
99
101
  }
100
102
  />
101
103
  <View style={styles.wrapRight}>
@@ -149,7 +149,7 @@ const InfoMemberUnit = memo(({ route }) => {
149
149
  screen: Routes.SharingSelectPermission,
150
150
  params: {
151
151
  unit: { id: unit?.id },
152
- type: 'update_shared',
152
+ type: 'share_device',
153
153
  member: memberInfo,
154
154
  },
155
155
  });
@@ -21,8 +21,10 @@ const MemberList = ({ route }) => {
21
21
  const isFocused = useIsFocused();
22
22
  const account = useSCContextSelector((state) => state.auth.account);
23
23
  const { unitId, unit } = route.params;
24
- const { dataMembers, isRefresh, onRefresh, leaveUnit, loading } =
25
- useDataMember(unitId, unit?.user_id);
24
+ const { dataMembers, isRefresh, onRefresh, leaveUnit } = useDataMember(
25
+ unitId,
26
+ unit?.user_id
27
+ );
26
28
  const { isOwner } = useIsOwnerOfUnit(unit?.user_id);
27
29
 
28
30
  const { stateAlertSharingMenu, hideStateAlertSharingMenu, stateLeaveUnit } =
@@ -65,7 +67,6 @@ const MemberList = ({ route }) => {
65
67
  />
66
68
  </TouchableOpacity>
67
69
  );
68
-
69
70
  return (
70
71
  <View style={styles.container}>
71
72
  <WrapHeaderScrollable
@@ -76,15 +77,13 @@ const MemberList = ({ route }) => {
76
77
  headerAniStyle={styles.headerAniStyle}
77
78
  styleScrollView={{ backgroundColor: Colors.White }}
78
79
  >
79
- {!loading && (
80
- <SharingMembers
81
- testID={TESTID.SHARING_MEMBER}
82
- dataMember={dataMembers}
83
- unit={unit}
84
- ownerId={unit.user_id}
85
- currentUserId={account.user.id}
86
- />
87
- )}
80
+ <SharingMembers
81
+ testID={TESTID.SHARING_MEMBER}
82
+ dataMember={dataMembers}
83
+ unit={unit}
84
+ ownerId={unit.user_id}
85
+ currentUserId={account.user.id}
86
+ />
88
87
  </WrapHeaderScrollable>
89
88
  <AlertAction
90
89
  visible={stateAlertSharingMenu.visible}