@eohjsc/react-native-smart-city 0.7.3 → 0.7.5

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 (274) hide show
  1. package/assets/images/Automation-fill.svg +85 -0
  2. package/assets/images/Map/LocationPin.svg +10 -0
  3. package/assets/images/Scenario-filled.svg +22 -0
  4. package/assets/images/schedule-fill.svg +48 -0
  5. package/package.json +20 -17
  6. package/src/commons/Action/ItemQuickAction.js +1 -1
  7. package/src/commons/Action/__test__/ItemQuickAction.test.js +6 -6
  8. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +3 -3
  9. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/ButtonWrapper.js +3 -3
  10. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +5 -5
  11. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +3 -3
  12. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/ButtonWrapper.js +2 -2
  13. package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +2 -2
  14. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +2 -2
  15. package/src/commons/ActionGroup/SliderRangeTemplate.js +7 -7
  16. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +2 -2
  17. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/CircleButton.js +5 -5
  18. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/ControlPlay.js +5 -5
  19. package/src/commons/ActionGroup/TerminalBoxTemplate.js +2 -2
  20. package/src/commons/ActionGroup/TextBoxTemplate.js +2 -2
  21. package/src/commons/ActionGroup/ThreeButtonTemplate/__test__/ThreeButtonCircle.test.js +2 -2
  22. package/src/commons/ActionGroup/ThreeButtonTemplate/__test__/ThreeButtonDefault.test.js +2 -2
  23. package/src/commons/ActionGroup/TimerActionTemplate.js +6 -3
  24. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +2 -2
  25. package/src/commons/ActionGroup/__test__/ColorPickerTemplate.test.js +9 -10
  26. package/src/commons/ActionGroup/__test__/OnOffSmartLock.test.js +5 -5
  27. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +5 -5
  28. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +8 -8
  29. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +3 -3
  30. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -6
  31. package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -1
  32. package/src/commons/ActionGroup/__test__/index.test.js +6 -6
  33. package/src/commons/ActionGroup/index.js +2 -2
  34. package/src/commons/ActionTemplate/__test__/index.test.js +4 -4
  35. package/src/commons/Automate/ItemAutomate.js +9 -41
  36. package/src/commons/Automate/ItemConditionScriptDetail.js +67 -0
  37. package/src/commons/Automate/ItemConditionScriptDetailStyles.js +46 -0
  38. package/src/commons/Automate/__test__/ItemAutomate.test.js +0 -21
  39. package/src/commons/BackDefault/index.js +2 -2
  40. package/src/commons/BottomButtonView/index.js +1 -0
  41. package/src/commons/ButtonPopup/index.js +3 -2
  42. package/src/commons/ChartAggregationOption/__test__/FourButtonFilterHistory.test.js +2 -2
  43. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +8 -9
  44. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +7 -7
  45. package/src/commons/DateTimeRangeChange/DateTimeButton.js +3 -3
  46. package/src/commons/DateTimeRangeChange/index.js +1 -1
  47. package/src/commons/Device/ConnectedViewHeader.js +2 -2
  48. package/src/commons/Device/Emergency/EmergencyDetail.js +3 -3
  49. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +1 -1
  50. package/src/commons/Device/FlatListItems.js +20 -19
  51. package/src/commons/Device/Hanet/ItemHanetDevice.js +3 -3
  52. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +3 -3
  53. package/src/commons/Device/HorizontalBarChart.js +54 -34
  54. package/src/commons/Device/ItemAddNew/index.js +2 -2
  55. package/src/commons/Device/ItemDevice.js +5 -21
  56. package/src/commons/Device/SonosSpeaker/index.js +3 -3
  57. package/src/commons/Device/WaterPurifierStatus/AlertStatusMachine.js +2 -2
  58. package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +6 -2
  59. package/src/commons/DisplayChecking/index.js +2 -2
  60. package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -2
  61. package/src/commons/FieldTemplate/ChooseUserField/index.js +2 -2
  62. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +3 -3
  63. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +6 -6
  64. package/src/commons/FlatListDnD/__test__/index.test.js +4 -4
  65. package/src/commons/FlatListDnD/index.js +12 -9
  66. package/src/commons/Grid/GridItem.js +10 -2
  67. package/src/commons/GroupCheckBox/__test__/GroupCheckBox.test.js +3 -3
  68. package/src/commons/Header/HeaderCustom.js +2 -2
  69. package/src/commons/Header/__test__/HeaderCT.test.js +3 -3
  70. package/src/commons/HeaderAni/index.js +2 -2
  71. package/src/commons/IconComponent/index.js +3 -3
  72. package/src/commons/ImagePicker/__test__/ImagePicker.test.js +5 -5
  73. package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +6 -4
  74. package/src/commons/MenuActionMore/MenuActionMoreStyles.js +2 -1
  75. package/src/commons/MenuActionMore/index.js +1 -1
  76. package/src/commons/NavBar/NavBarStyles.js +1 -1
  77. package/src/commons/NavBar/index.js +2 -2
  78. package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +3 -3
  79. package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +1 -1
  80. package/src/commons/Popover/__test__/index.test.js +3 -3
  81. package/src/commons/Processing/__test__/Connecting.test.js +4 -4
  82. package/src/commons/SearchLocation/index.js +3 -3
  83. package/src/commons/SelectActionCard/index.js +2 -2
  84. package/src/commons/SelectSubUnit/index.js +6 -2
  85. package/src/commons/SelectUnit/__test__/SelectUnit.test.js +5 -5
  86. package/src/commons/Sharing/BtnRemoveMember.js +2 -2
  87. package/src/commons/Sharing/StationDevicePermissions.js +2 -2
  88. package/src/commons/SubUnit/DeviceTemplate/ConfigAndEvaluation/ConfigAndEvaluation.js +2 -2
  89. package/src/commons/SubUnit/DeviceTemplate/ConfigValue/ConfigValue.js +2 -2
  90. package/src/commons/SubUnit/DeviceTemplate/EvaluationOverConfig/EvaluationOverConfig.js +2 -2
  91. package/src/commons/SubUnit/OneTap/ItemOneTap.js +6 -7
  92. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +0 -2
  93. package/src/commons/SubUnit/OneTap/index.js +9 -8
  94. package/src/commons/SubUnit/__test__/ShortDetail.test.js +8 -8
  95. package/src/commons/Unit/HeaderUnit/index.js +30 -22
  96. package/src/commons/Unit/SharedUnit.js +7 -7
  97. package/src/commons/Widgets/IFrame/__tests__/IFrame.test.js +9 -13
  98. package/src/commons/Widgets/IFrameWithConfig/IFrameWithConfig.js +34 -2
  99. package/src/commons/Widgets/IFrameWithConfig/__tests__/IFrameWithConfig.test.js +88 -8
  100. package/src/commons/WrapParallaxScrollView/index.js +9 -10
  101. package/src/configs/API.js +1 -1
  102. package/src/configs/AccessibilityLabel.js +2 -0
  103. package/src/configs/Constants.js +3 -3
  104. package/src/configs/Theme.js +1 -1
  105. package/src/hooks/Common/__test__/useAndroidTranslucentStatusBar.test.js +5 -5
  106. package/src/hooks/IoT/__test__/useHomeAssistantConnection.test.js +12 -12
  107. package/src/hooks/IoT/__test__/useRemoteControl.test.js +14 -7
  108. package/src/hooks/IoT/__test__/useWatchConfigs.test.js +3 -3
  109. package/src/hooks/IoT/useRemoteControl.js +24 -13
  110. package/src/hooks/useMqtt.js +2 -2
  111. package/src/iot/RemoteControl/Bluetooth.js +19 -22
  112. package/src/iot/RemoteControl/Internet.js +13 -5
  113. package/src/iot/RemoteControl/__test__/Internet.test.js +7 -7
  114. package/src/navigations/EmergencyContactsStack.js +4 -3
  115. package/src/navigations/SharedStack.js +2 -0
  116. package/src/navigations/UnitStack.js +56 -57
  117. package/src/screens/AQIGuide/index.js +0 -2
  118. package/src/screens/ActivityLog/index.js +2 -2
  119. package/src/screens/AddLocationMaps/__test__/index.test.js +12 -12
  120. package/src/screens/AddLocationMaps/index.js +16 -19
  121. package/src/screens/AddLocationMaps/indexStyle.js +1 -0
  122. package/src/screens/AddNewGateway/RenameNewDevices.js +2 -2
  123. package/src/screens/AddNewGateway/SelectDeviceType.js +1 -1
  124. package/src/screens/AddNewGateway/ShareWifiPassword.js +16 -15
  125. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +7 -7
  126. package/src/screens/AddNewGateway/__test__/ConnectingWifiDevice.test.js +8 -8
  127. package/src/screens/AddNewGateway/__test__/ConnectingZigbeeDevice.test.js +7 -7
  128. package/src/screens/AddNewGateway/__test__/RenameNewDevices.test.js +8 -8
  129. package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +5 -5
  130. package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +4 -4
  131. package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +6 -6
  132. package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +6 -6
  133. package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +0 -4
  134. package/src/screens/AddNewGateway/hooks/__Tests__/useWifiManage.test.js +2 -2
  135. package/src/screens/AllGateway/DetailConfigActionModbus/__test__/index.test.js +6 -6
  136. package/src/screens/AllGateway/DeviceInternalDetail/__test__/index.test.js +19 -17
  137. package/src/screens/AllGateway/DeviceModbusDetail/__test__/index.test.js +19 -17
  138. package/src/screens/AllGateway/DeviceZigbeeDetail/__test__/index.test.js +18 -16
  139. package/src/screens/AllGateway/GatewayDetail/__test__/index.test.js +43 -35
  140. package/src/screens/AllGateway/GatewayInfo/__test__/index.test.js +38 -22
  141. package/src/screens/AllGateway/__test__/index.test.js +6 -6
  142. package/src/screens/AllGateway/components/Detail/__test__/index.test.js +3 -5
  143. package/src/screens/AllGateway/components/GatewayItem/__test__/index.test.js +3 -3
  144. package/src/screens/AllGateway/components/TabPaneCT/__test__/index.test.js +6 -6
  145. package/src/screens/AllGateway/hooks/__test__/index.test.js +2 -2
  146. package/src/screens/AllGateway/test-utils.js +3 -4
  147. package/src/screens/Automate/AddNewAction/ChooseAction.js +17 -3
  148. package/src/screens/Automate/AddNewAction/ChooseConfig.js +7 -6
  149. package/src/screens/Automate/AddNewAction/NewActionWrapper.js +8 -8
  150. package/src/screens/Automate/AddNewAction/SelectControlDevices.js +30 -20
  151. package/src/screens/Automate/AddNewAction/SelectMonitorDevices.js +17 -10
  152. package/src/screens/Automate/AddNewAction/SetupConfigCondition.js +58 -44
  153. package/src/screens/Automate/AddNewAction/SetupScriptDelay.js +1 -1
  154. package/src/screens/Automate/AddNewAction/SetupScriptNotify.js +3 -3
  155. package/src/screens/Automate/AddNewAction/Styles/SetupSensorStyles.js +20 -4
  156. package/src/screens/Automate/AddNewAction/__test__/ChooseAction.test.js +12 -12
  157. package/src/screens/Automate/AddNewAction/__test__/SelectControlDevices.test.js +14 -8
  158. package/src/screens/Automate/AddNewAction/__test__/SelectMonitorDevices.test.js +13 -7
  159. package/src/screens/Automate/AddNewAction/__test__/SetupConfigCondition.test.js +54 -15
  160. package/src/screens/Automate/AddNewAction/__test__/SetupScriptDelay.test.js +9 -9
  161. package/src/screens/Automate/AddNewAction/__test__/SetupScriptNotify.test.js +39 -10
  162. package/src/screens/Automate/AddNewAutoSmart/AddTypeSmart.js +10 -10
  163. package/src/screens/Automate/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +13 -8
  164. package/src/screens/Automate/Components/InputName.js +10 -7
  165. package/src/screens/Automate/EditActionsList/__tests__/UpdateActionScript.test.js +8 -8
  166. package/src/screens/Automate/EditActionsList/__tests__/UpdateDelayScript.test.js +6 -6
  167. package/src/screens/Automate/EditActionsList/__tests__/UpdateNotifyScript.test.js +7 -7
  168. package/src/screens/Automate/EditActionsList/index.js +19 -17
  169. package/src/screens/Automate/MultiUnits.js +19 -22
  170. package/src/screens/Automate/OneTap/__test__/AddNewOneTap.test.js +18 -8
  171. package/src/screens/Automate/Scenario/__test__/AddNewOneTap.test.js +15 -7
  172. package/src/screens/Automate/ScriptDetail/Components/AddActionScript.js +14 -6
  173. package/src/screens/Automate/ScriptDetail/Components/RenameScript.js +4 -7
  174. package/src/screens/Automate/ScriptDetail/__test__/index.test.js +56 -18
  175. package/src/screens/Automate/ScriptDetail/__test__/useStarredScript.test.js +6 -6
  176. package/src/screens/Automate/ScriptDetail/index.js +105 -41
  177. package/src/screens/Automate/SetSchedule/__test__/SelectWeekday.test.js +4 -4
  178. package/src/screens/Automate/SetSchedule/__test__/index.test.js +29 -18
  179. package/src/screens/Automate/SetSchedule/components/RowItem.js +5 -5
  180. package/src/screens/Automate/SetSchedule/index.js +8 -7
  181. package/src/screens/Automate/Styles/indexStyles.js +1 -1
  182. package/src/screens/Automate/__test__/MultiUnits.test.js +1 -4
  183. package/src/screens/Automate/__test__/index.test.js +0 -1
  184. package/src/screens/Automate/index.js +36 -34
  185. package/src/screens/ChangePosition/__test__/index.test.js +6 -6
  186. package/src/screens/ChangePosition/index.js +2 -1
  187. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +13 -13
  188. package/src/screens/Device/EditDevice/index.js +4 -4
  189. package/src/screens/Device/__test__/BluetoothDevice.test.js +300 -0
  190. package/src/screens/Device/__test__/detail.test.js +14 -14
  191. package/src/screens/Device/__test__/mqttDetail.test.js +9 -9
  192. package/src/screens/Device/components/BluetoothDevice.js +135 -0
  193. package/src/screens/Device/components/SensorDisplayItem.js +9 -8
  194. package/src/screens/Device/detail.js +70 -62
  195. package/src/screens/Device/hooks/useEvaluateValue.js +1 -1
  196. package/src/screens/Drawer/Drawer.test.js +2 -2
  197. package/src/screens/Drawer/index.js +3 -3
  198. package/src/screens/EmergencyContacts/EmergencyContactsList.js +8 -4
  199. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -3
  200. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +7 -7
  201. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  202. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +8 -8
  203. package/src/screens/GuestInfo/components/RowGuestInfo.js +2 -2
  204. package/src/screens/GuestInfo/components/__test__/AccessScheduleSheet.test.js +3 -3
  205. package/src/screens/GuestInfo/index.js +2 -2
  206. package/src/screens/HanetCamera/ManageAccess.js +3 -3
  207. package/src/screens/HanetCamera/MemberInfo.js +2 -2
  208. package/src/screens/HanetCamera/__test__/Detail.test.js +9 -9
  209. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +10 -10
  210. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -2
  211. package/src/screens/ManageAccess/index.js +3 -3
  212. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +9 -9
  213. package/src/screens/Notification/__test__/Notification.test.js +9 -9
  214. package/src/screens/Notification/components/NotificationItem.js +3 -4
  215. package/src/screens/Notification/index.js +3 -3
  216. package/src/screens/Notification/styles/NotificationItemStyles.js +0 -1
  217. package/src/screens/PlayBackCamera/__test__/index.test.js +1 -1
  218. package/src/screens/ScanChipQR/components/QRScan/__test__/QRScan.test.js +1 -1
  219. package/src/screens/ScanChipQR/components/QRScan/index.js +3 -3
  220. package/src/screens/SelectUnit/__test__/index.test.js +8 -8
  221. package/src/screens/SelectUnit/index.js +4 -4
  222. package/src/screens/SharedUnit/TabHeader.js +2 -2
  223. package/src/screens/Sharing/Components/EndDevice.js +3 -3
  224. package/src/screens/Sharing/UnitMemberList.js +2 -2
  225. package/src/screens/Sharing/__test__/UpdateShareDevice.test.js +7 -7
  226. package/src/screens/SideMenuDetail/__test__/index.test.js +8 -8
  227. package/src/screens/SmartAccount/Connecting/index.js +5 -5
  228. package/src/screens/SmartAccount/ListDevice/__test__/ListDevice.test.js +8 -8
  229. package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js +7 -7
  230. package/src/screens/SmartAccount/SuccessfullyConnected/index.js +2 -2
  231. package/src/screens/SmartAccount/__test__/Connecting.test.js +6 -6
  232. package/src/screens/SmartAccount/__test__/SmartAccount.test.js +10 -10
  233. package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +3 -2
  234. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -2
  235. package/src/screens/SmartIr/components/SelectBrand.js +2 -2
  236. package/src/screens/SubUnit/AddSubUnit.js +28 -26
  237. package/src/screens/SubUnit/AddSubUnitStyles.js +10 -4
  238. package/src/screens/SubUnit/EditSubUnit.js +12 -11
  239. package/src/screens/SubUnit/ManageSubUnit.js +3 -3
  240. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +13 -13
  241. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +3 -3
  242. package/src/screens/Template/EditTemplate.js +6 -4
  243. package/src/screens/Template/__test__/EditTemplate.test.js +7 -7
  244. package/src/screens/Template/__test__/detail.test.js +4 -4
  245. package/src/screens/Template/__test__/index.test.js +1 -1
  246. package/src/screens/UVIndexGuide/index.js +2 -4
  247. package/src/screens/Unit/Detail.js +1 -5
  248. package/src/screens/Unit/MoreMenu.js +6 -5
  249. package/src/screens/Unit/SelectAddToFavorites.js +2 -2
  250. package/src/screens/Unit/SelectAddress.js +16 -12
  251. package/src/screens/Unit/Station/__test__/index.test.js +1 -1
  252. package/src/screens/Unit/__test__/MoreMenu.test.js +5 -1
  253. package/src/screens/Unit/__test__/SelectAddToFavorites.test.js +9 -9
  254. package/src/screens/Unit/__test__/SelectAddress.test.js +11 -17
  255. package/src/screens/Unit/__test__/Summaries.test.js +7 -7
  256. package/src/screens/Unit/components/AutomateScript/index.js +5 -5
  257. package/src/screens/Unit/components/ButtonWrapper/index.js +3 -3
  258. package/src/screens/Unit/components/Header/index.js +2 -2
  259. package/src/screens/Unit/components/SharedUnit/index.js +5 -5
  260. package/src/screens/Unit/components/__test__/AutomateScript.test.js +3 -3
  261. package/src/screens/Unit/components/__test__/SharedUnit.test.js +8 -8
  262. package/src/screens/Unit/hook/__test__/useUnitConnectRemoteDevices.test.js +2 -2
  263. package/src/screens/UnitSummary/components/AirQuality/index.js +6 -11
  264. package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +5 -5
  265. package/src/screens/UnitSummary/index.js +6 -2
  266. package/src/utils/Apis/axios.js +5 -5
  267. package/src/utils/Functions/ShortEmail.js +1 -0
  268. package/src/utils/I18n/translations/en.js +6 -3
  269. package/src/utils/I18n/translations/vi.js +8 -4
  270. package/src/utils/__test__/Utils.test.js +16 -16
  271. package/src/utils/bluetooth.js +3 -0
  272. package/assets/images/OneTap.svg +0 -14
  273. package/assets/images/Schedule.svg +0 -39
  274. package/assets/images/ValueChange.svg +0 -49
@@ -1,17 +1,17 @@
1
- import React from 'react';
2
1
  import MockAdapter from 'axios-mock-adapter';
2
+ import React from 'react';
3
3
  import { act, create } from 'react-test-renderer';
4
4
 
5
5
  import { AccessibilityLabel } from '../../../configs/Constants';
6
6
 
7
- import { SCProvider } from '../../../context';
8
- import { mockSCStore } from '../../../context/mockStore';
9
- import SideMenuDetail from '../index';
10
- import { API } from '../../../configs';
11
7
  import { TouchableOpacity } from 'react-native';
12
8
  import { ModalCustom } from '../../../commons/Modal';
13
- import { ToastBottomHelper } from '../../../utils/Utils';
9
+ import { API } from '../../../configs';
10
+ import { SCProvider } from '../../../context';
11
+ import { mockSCStore } from '../../../context/mockStore';
14
12
  import api from '../../../utils/Apis/axios';
13
+ import { ToastBottomHelper } from '../../../utils/Utils';
14
+ import SideMenuDetail from '../index';
15
15
 
16
16
  const mock = new MockAdapter(api.axiosInstance);
17
17
 
@@ -158,7 +158,7 @@ describe('Test SideMenuDetail', () => {
158
158
  const instance = tree.root;
159
159
  await chooseUser(instance);
160
160
  await onPressSubmitData(instance);
161
- expect(spyToastError).toBeCalled();
161
+ expect(spyToastError).toHaveBeenCalled();
162
162
 
163
163
  await enterPasscode(instance);
164
164
  await onPressSubmitData(instance);
@@ -174,6 +174,6 @@ describe('Test SideMenuDetail', () => {
174
174
  },
175
175
  })
176
176
  );
177
- expect(spyToastSuccess).toBeCalled();
177
+ expect(spyToastSuccess).toHaveBeenCalled();
178
178
  });
179
179
  });
@@ -1,14 +1,14 @@
1
- import React, { useEffect, useCallback, useContext } from 'react';
2
- import { View } from 'react-native';
3
1
  import { useNavigation } from '@react-navigation/native';
2
+ import React, { useCallback, useContext, useEffect } from 'react';
3
+ import { View } from 'react-native';
4
4
  import * as Progress from 'react-native-progress';
5
5
 
6
6
  import Text from '../../../commons/Text';
7
- import { useTranslations } from '../../../hooks/Common/useTranslations';
8
- import { Action } from '../../../context/actionType';
7
+ import { API, Colors, Constants } from '../../../configs';
9
8
  import { SCContext, useSCContextSelector } from '../../../context';
9
+ import { Action } from '../../../context/actionType';
10
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
10
11
  import { axiosPost } from '../../../utils/Apis/axios';
11
- import { API, Colors, Constants } from '../../../configs';
12
12
  import Routes from '../../../utils/Route';
13
13
  import styles from './style';
14
14
 
@@ -1,17 +1,17 @@
1
1
  import React from 'react';
2
- import { act, create } from 'react-test-renderer';
3
2
  import { TouchableOpacity } from 'react-native';
3
+ import { act, create } from 'react-test-renderer';
4
4
 
5
- import ListDevice from '../index';
5
+ import { useNavigation } from '@react-navigation/native';
6
+ import MockAdapter from 'axios-mock-adapter';
7
+ import Text from '../../../../commons/Text';
8
+ import { API } from '../../../../configs';
9
+ import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
6
10
  import { SCProvider } from '../../../../context';
7
11
  import { mockSCStore } from '../../../../context/mockStore';
8
- import Text from '../../../../commons/Text';
9
12
  import api from '../../../../utils/Apis/axios';
10
- import { API } from '../../../../configs';
11
13
  import Routes from '../../../../utils/Route';
12
- import MockAdapter from 'axios-mock-adapter';
13
- import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
14
- import { useNavigation } from '@react-navigation/native';
14
+ import ListDevice from '../index';
15
15
 
16
16
  const mock = new MockAdapter(api.axiosInstance);
17
17
 
@@ -78,7 +78,7 @@ describe('Test ListDeviceSmartAccount', () => {
78
78
  await touchs[touchs.length - 1].props.onPress();
79
79
  });
80
80
 
81
- expect(navigate).toBeCalledWith(Routes.AddDeviceStack, {
81
+ expect(navigate).toHaveBeenCalledWith(Routes.AddDeviceStack, {
82
82
  screen: Routes.AddCommonSelectSubUnit,
83
83
  params: {
84
84
  addType: 'AddHassiDevice',
@@ -1,16 +1,16 @@
1
+ import MockAdapter from 'axios-mock-adapter';
1
2
  import React from 'react';
2
3
  import renderer, { act } from 'react-test-renderer';
3
- import MockAdapter from 'axios-mock-adapter';
4
4
 
5
- import SuccessfullyConnected from '../index';
5
+ import _TextInput from '../../../../commons/Form/TextInput';
6
+ import { API } from '../../../../configs';
7
+ import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
6
8
  import { SCProvider } from '../../../../context';
7
9
  import { mockSCStore } from '../../../../context/mockStore';
8
10
  import api from '../../../../utils/Apis/axios';
9
- import { API } from '../../../../configs';
10
- import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
11
11
  import Routes from '../../../../utils/Route';
12
- import _TextInput from '../../../../commons/Form/TextInput';
13
12
  import { flushPromises } from '../../../AllGateway/test-utils';
13
+ import SuccessfullyConnected from '../index';
14
14
 
15
15
  const mock = new MockAdapter(api.axiosInstance);
16
16
 
@@ -100,7 +100,7 @@ describe('Test SuccessfullyConnected', () => {
100
100
  await act(async () => {
101
101
  handleContinue.props.onPress();
102
102
  });
103
- expect(global.mockedNavigate).toBeCalledWith(
103
+ expect(global.mockedNavigate).toHaveBeenCalledWith(
104
104
  Routes.ListDeviceSmartAccount,
105
105
  {
106
106
  smart_account_id: 1,
@@ -125,7 +125,7 @@ describe('Test SuccessfullyConnected', () => {
125
125
  await act(async () => {
126
126
  handleFinish.props.onPress();
127
127
  });
128
- expect(global.mockedDispatch).toBeCalledWith({
128
+ expect(global.mockedDispatch).toHaveBeenCalledWith({
129
129
  payload: {
130
130
  index: 0,
131
131
  routes: [
@@ -1,7 +1,7 @@
1
1
  import React, { memo, useCallback, useEffect, useState } from 'react';
2
2
  import { View, ScrollView, ActivityIndicator } from 'react-native';
3
3
  import { useNavigation, CommonActions } from '@react-navigation/native';
4
- import AntDesign from 'react-native-vector-icons/AntDesign';
4
+ import { IconOutline } from '@ant-design/icons-react-native';
5
5
 
6
6
  import _TextInput from '../../../commons/Form/TextInput';
7
7
  import Text from '../../../commons/Text';
@@ -134,7 +134,7 @@ const SuccessfullyConnected = memo(({ route }) => {
134
134
  <View style={styles.wrap}>
135
135
  <ScrollView>
136
136
  <View style={styles.body}>
137
- <AntDesign name="check-circle" size={28} color={Colors.Green6} />
137
+ <IconOutline name="check-circle" size={28} color={Colors.Green6} />
138
138
  <Text bold style={styles.connectingText}>
139
139
  {t('successfully_connected')}
140
140
  </Text>
@@ -1,14 +1,14 @@
1
+ import MockAdapter from 'axios-mock-adapter';
1
2
  import React from 'react';
2
3
  import renderer, { act } from 'react-test-renderer';
4
+ import Text from '../../../commons/Text';
5
+ import { API } from '../../../configs';
3
6
  import { SCProvider } from '../../../context';
4
7
  import { mockSCStore } from '../../../context/mockStore';
5
- import SmartAccountConnecting from '../Connecting';
6
- import Text from '../../../commons/Text';
7
- import MockAdapter from 'axios-mock-adapter';
8
+ import t from '../../../hooks/Common/useTranslations';
8
9
  import api from '../../../utils/Apis/axios';
9
- import { API } from '../../../configs';
10
10
  import Routes from '../../../utils/Route';
11
- import t from '../../../hooks/Common/useTranslations';
11
+ import SmartAccountConnecting from '../Connecting';
12
12
 
13
13
  const mock = new MockAdapter(api.axiosInstance);
14
14
 
@@ -53,7 +53,7 @@ describe('Test Connecting', () => {
53
53
  await act(async () => {
54
54
  tree = await renderer.create(wrapComponent(route));
55
55
  });
56
- expect(global.mockedNavigate).toBeCalledWith(Routes.SmartAccount, {
56
+ expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.SmartAccount, {
57
57
  params: {},
58
58
  });
59
59
  });
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
- import renderer, { act } from 'react-test-renderer';
3
- import Toast from 'react-native-toast-message';
4
2
  import { ScrollView, TouchableOpacity } from 'react-native';
5
- import { SCProvider } from '../../../context';
6
- import { mockSCStore } from '../../../context/mockStore';
7
- import SmartAccount from '../index';
8
- import AccessibilityLabel from '../../../configs/AccessibilityLabel';
3
+ import Toast from 'react-native-toast-message';
4
+ import renderer, { act } from 'react-test-renderer';
9
5
  import TextInput from '../../../commons/Form/TextInput';
10
6
  import _TextInputPassword from '../../../commons/Form/TextInputPassword';
7
+ import AccessibilityLabel from '../../../configs/AccessibilityLabel';
8
+ import { SCProvider } from '../../../context';
9
+ import { mockSCStore } from '../../../context/mockStore';
11
10
  import Routes from '../../../utils/Route';
11
+ import SmartAccount from '../index';
12
12
 
13
13
  const wrapComponent = (route) => (
14
14
  <SCProvider initState={mockSCStore({})}>
@@ -98,7 +98,7 @@ describe('Test SmartAccount', () => {
98
98
  await act(async () => {
99
99
  await touchableOpacity.props.onPress();
100
100
  });
101
- expect(Toast.show).toBeCalledWith({
101
+ expect(Toast.show).toHaveBeenCalledWith({
102
102
  type: 'error',
103
103
  position: 'bottom',
104
104
  text1: 'Please select a supplier',
@@ -152,7 +152,7 @@ describe('Test SmartAccount', () => {
152
152
  await act(async () => {
153
153
  await touchableOpacity.props.onPress();
154
154
  });
155
- expect(global.mockedNavigate).toBeCalledWith(
155
+ expect(global.mockedNavigate).toHaveBeenCalledWith(
156
156
  Routes.SmartAccountConnecting,
157
157
  {
158
158
  brand: 'google_home',
@@ -206,7 +206,7 @@ describe('Test SmartAccount', () => {
206
206
  await act(async () => {
207
207
  await touchableOpacity.props.onPress();
208
208
  });
209
- expect(global.mockedNavigate).toBeCalledWith(Routes.AddDeviceStack, {
209
+ expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.AddDeviceStack, {
210
210
  screen: 'AddCommonSelectUnit',
211
211
  params: {
212
212
  addType: 'AddHassioDevice',
@@ -236,7 +236,7 @@ describe('Test SmartAccount', () => {
236
236
  await touchSupplierItem[1].props.onPress();
237
237
  });
238
238
  expect(touchSupplierItem).toBeDefined();
239
- expect(global.mockedNavigate).toBeCalledWith(Routes.Browser, {
239
+ expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.Browser, {
240
240
  // eslint-disable-next-line max-len
241
241
  link: 'https://qt-vn.m.lgaccount.com/emp/v2/authorize?client_id=2b85aee334f046848341547894bb7c4e&redirect_uri=app://eoh/sync-lg-device&response_type=code&state=1',
242
242
  });
@@ -9,8 +9,9 @@ import { AccessibilityLabel } from '../../../configs/Constants';
9
9
  import TextInput from '../../../commons/Form/TextInput';
10
10
  import { ModalCustom } from '../../../commons/Modal';
11
11
  import { TouchableOpacity } from 'react-native';
12
- import AntDesign from 'react-native-vector-icons/AntDesign';
12
+
13
13
  import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
14
+ import { IconOutline } from '@ant-design/icons-react-native';
14
15
 
15
16
  const wrapComponent = (route) => (
16
17
  <SCProvider initState={mockSCStore({})}>
@@ -133,7 +134,7 @@ describe('Test GroupButtonByType', () => {
133
134
  const icon = instance.find(
134
135
  (el) =>
135
136
  el.props.accessibilityLabel ===
136
- AccessibilityLabel.ICON_OUTLINE_TYPE_RELOAD && el.type === AntDesign
137
+ AccessibilityLabel.ICON_OUTLINE_TYPE_RELOAD && el.type === IconOutline
137
138
  );
138
139
  await act(async () => {
139
140
  await touch.props.onPress();
@@ -5,7 +5,7 @@ import { useTranslations } from '../../../../hooks/Common/useTranslations';
5
5
  import SmartTiviActionTemplate from '../../../../commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate';
6
6
  import Text from '../../../../commons/Text';
7
7
  import { ModalCustom } from '../../../../commons/Modal';
8
- import AntDesign from 'react-native-vector-icons/AntDesign';
8
+ import { IconOutline } from '@ant-design/icons-react-native';
9
9
  import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
10
10
  import { Colors } from '../../../../configs';
11
11
  import TextInput from '../../../../commons/Form/TextInput';
@@ -58,7 +58,7 @@ const GroupButtonByType = memo(({ route }) => {
58
58
  style={[styles.headerButton]}
59
59
  accessibilityLabel={AccessibilityLabel.HEADER_BUTTON_TYPE_RELOAD}
60
60
  >
61
- <AntDesign
61
+ <IconOutline
62
62
  name={'reload1'}
63
63
  size={27}
64
64
  color={Colors.Black}
@@ -5,7 +5,7 @@ import { HeaderCustom } from '../../../commons/Header';
5
5
  import { useTranslations } from '../../../hooks/Common/useTranslations';
6
6
  import Routes from '../../../utils/Route';
7
7
  import { RowItem } from '../../../commons/RowItem';
8
- import AntDesign from 'react-native-vector-icons/AntDesign';
8
+ import { IconOutline } from '@ant-design/icons-react-native';
9
9
  import { Colors } from '../../../configs';
10
10
 
11
11
  import styles from './SelectBrandStyles';
@@ -47,7 +47,7 @@ const SelectDeviceType = memo(({ route }) => {
47
47
  key={index.toString()}
48
48
  isShowSubText={false}
49
49
  rightComponent={
50
- <AntDesign name="right" size={20} color={Colors.Gray7} />
50
+ <IconOutline name="right" size={20} color={Colors.Gray7} />
51
51
  }
52
52
  />
53
53
  );
@@ -1,27 +1,28 @@
1
+ import { useNavigation } from '@react-navigation/native';
1
2
  import React, {
2
- useState,
3
3
  useCallback,
4
- useMemo,
5
4
  useEffect,
5
+ useMemo,
6
6
  useRef,
7
+ useState,
7
8
  } from 'react';
8
- import { View, Image, Keyboard, TouchableWithoutFeedback } from 'react-native';
9
- import { useNavigation } from '@react-navigation/native';
9
+ import { Image, Keyboard, TouchableWithoutFeedback, View } from 'react-native';
10
10
 
11
- import { useTranslations } from '../../hooks/Common/useTranslations';
12
- import { API, Colors } from '../../configs';
13
- import { ViewButtonBottom, ImagePicker } from '../../commons';
14
- import Text from '../../commons/Text';
11
+ import { ImagePicker, ViewButtonBottom } from '../../commons';
15
12
  import _TextInput from '../../commons/Form/TextInput';
16
- import Routes from '../../utils/Route';
17
- import { axiosPost, createFormData } from '../../utils/Apis/axios';
18
- import { ToastBottomHelper } from '../../utils/Utils';
13
+ import Text from '../../commons/Text';
14
+ import { API, Colors } from '../../configs';
19
15
  import { AccessibilityLabel } from '../../configs/Constants';
20
- import styles from './AddSubUnitStyles';
16
+ import { useSCContextSelector } from '../../context';
21
17
  import useKeyboardShow from '../../hooks/Common/useKeyboardShow';
18
+ import { useTranslations } from '../../hooks/Common/useTranslations';
22
19
  import { replace } from '../../navigations/utils';
20
+ import { axiosPost, createFormData } from '../../utils/Apis/axios';
23
21
  import { useBackendPermission } from '../../utils/Permission/backend';
24
- import { useSCContextSelector } from '../../context';
22
+ import Routes from '../../utils/Route';
23
+ import { ToastBottomHelper } from '../../utils/Utils';
24
+ import styles from './AddSubUnitStyles';
25
+ import LocationPin from '../../../assets/images/Map/LocationPin.svg';
25
26
 
26
27
  const AddSubUnit = ({ route }) => {
27
28
  const t = useTranslations();
@@ -85,7 +86,6 @@ const AddSubUnit = ({ route }) => {
85
86
  cleanData();
86
87
  } else {
87
88
  awaitCreate.current = false;
88
- ToastBottomHelper.error(t('text_create_unit_fail'));
89
89
  }
90
90
  }
91
91
  } else {
@@ -120,9 +120,7 @@ const AddSubUnit = ({ route }) => {
120
120
  routeName: Routes.DashboardStack,
121
121
  };
122
122
  if (isInsideUnit) {
123
- navigate(Routes.UnitDetail, {
124
- params: commonPrams,
125
- });
123
+ navigate(Routes.UnitDetail, commonPrams);
126
124
  } else {
127
125
  dispatch(
128
126
  replace(Routes.UnitStack, {
@@ -228,15 +226,19 @@ const AddSubUnit = ({ route }) => {
228
226
  }
229
227
  onPress={onChooseLocation}
230
228
  >
231
- <View style={styles.wrapGeolocation}>
232
- <Text style={styles.addWallpaper}>{t('geolocation')}</Text>
233
- <Text
234
- style={styles.textLocation}
235
- color={location.description && Colors.Primary}
236
- >
237
- {location.description ||
238
- t('text_explain_add_geolocation')}
239
- </Text>
229
+ <View style={styles.wrapLocation}>
230
+ <Text style={styles.addWallpaper}>{t('location')}</Text>
231
+ <View style={styles.wrapTextLocation}>
232
+ <LocationPin />
233
+ <Text
234
+ style={styles.textLocation}
235
+ color={
236
+ location.description ? Colors.Primary : Colors.Gray7
237
+ }
238
+ >
239
+ {location.description || t('text_explain_add_location')}
240
+ </Text>
241
+ </View>
240
242
  </View>
241
243
  </TouchableWithoutFeedback>
242
244
  )}
@@ -63,14 +63,20 @@ export default StyleSheet.create({
63
63
  marginRight: 8,
64
64
  backgroundColor: Colors.Pink1,
65
65
  },
66
- wrapGeolocation: {
66
+ wrapLocation: {
67
67
  marginTop: 6,
68
68
  borderBottomWidth: 1,
69
+ paddingBottom: 10,
69
70
  borderColor: Colors.Gray4,
70
71
  },
72
+ wrapTextLocation: {
73
+ flexDirection: 'row',
74
+ alignItems: 'center',
75
+ },
71
76
  textLocation: {
72
- fontSize: 16,
73
- lineHeight: 24,
74
- paddingBottom: 14,
77
+ fontSize: 12,
78
+ lineHeight: 20,
79
+ width: 320,
80
+ marginLeft: 6,
75
81
  },
76
82
  });
@@ -1,27 +1,27 @@
1
- import React, { useState, useCallback, useEffect } from 'react';
2
- import { View, TouchableOpacity, Image } from 'react-native';
3
1
  import { useIsFocused, useNavigation } from '@react-navigation/native';
2
+ import React, { useCallback, useEffect, useState } from 'react';
3
+ import { Image, TouchableOpacity, View } from 'react-native';
4
4
  import { useTranslations } from '../../hooks/Common/useTranslations';
5
5
 
6
- import { Colors, API } from '../../configs';
7
- import { ToastBottomHelper } from '../../utils/Utils';
6
+ import { API, Colors } from '../../configs';
7
+ import useBoolean from '../../hooks/Common/useBoolean';
8
8
  import {
9
- axiosPatch,
10
9
  axiosDelete,
10
+ axiosPatch,
11
11
  createFormData,
12
12
  } from '../../utils/Apis/axios';
13
13
  import Routes from '../../utils/Route';
14
- import useBoolean from '../../hooks/Common/useBoolean';
14
+ import { ToastBottomHelper } from '../../utils/Utils';
15
15
 
16
+ import { IconOutline } from '@ant-design/icons-react-native';
16
17
  import { ImagePicker, Section } from '../../commons';
17
18
  import AlertAction from '../../commons/AlertAction';
18
19
  import _TextInput from '../../commons/Form/TextInput';
19
20
  import Text from '../../commons/Text';
20
21
  import { AccessibilityLabel } from '../../configs/Constants';
21
- import AntDesign from 'react-native-vector-icons/AntDesign';
22
- import { useEmeragencyContacts } from './hooks/useEmergencyContacts';
23
22
  import useKeyboardAnimated from '../../hooks/Explore/useKeyboardAnimated';
24
23
  import styles from './EditSubUnitStyles';
24
+ import { useEmeragencyContacts } from './hooks/useEmergencyContacts';
25
25
 
26
26
  const EditSubUnit = ({ route }) => {
27
27
  const { unit, station } = route?.params || {};
@@ -52,7 +52,7 @@ const EditSubUnit = ({ route }) => {
52
52
  }, [getListContacts, group, isFocused]);
53
53
 
54
54
  const onBack = useCallback(() => {
55
- const { routes } = navigation.dangerouslyGetState();
55
+ const { routes } = navigation.getState();
56
56
  const calledByRoute = routes[routes.length - 3].name;
57
57
 
58
58
  switch (calledByRoute) {
@@ -63,9 +63,10 @@ const EditSubUnit = ({ route }) => {
63
63
  navigation.navigate(Routes.UnitDetail, {
64
64
  isEditSubUnit: true,
65
65
  isAddSubUnit: false,
66
+ unitId: unit?.id,
66
67
  });
67
68
  }
68
- }, [navigation]);
69
+ }, [navigation, unit?.id]);
69
70
 
70
71
  const updateSubUnit = useCallback(
71
72
  async (params, headers) => {
@@ -207,7 +208,7 @@ const EditSubUnit = ({ route }) => {
207
208
  <Text type={'H4'} color={Colors.Gray9}>
208
209
  {t('emergency_contacts')}
209
210
  </Text>
210
- <AntDesign name={'right'} size={20} color={Colors.Gray8} />
211
+ <IconOutline name={'right'} size={20} color={Colors.Gray8} />
211
212
  </TouchableOpacity>
212
213
  <Text
213
214
  type={'Body'}
@@ -14,7 +14,7 @@ import WrapHeaderScrollable from '../../commons/Sharing/WrapHeaderScrollable';
14
14
  import Text from '../../commons/Text';
15
15
 
16
16
  import styles from './ManageSubUnitStyles';
17
- import AntDesign from 'react-native-vector-icons/AntDesign';
17
+ import { IconOutline } from '@ant-design/icons-react-native';
18
18
  import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
19
19
  import Routes from '../../utils/Route';
20
20
  import { RowItem } from '../../commons/RowItem';
@@ -54,7 +54,7 @@ const ManageSubUnit = ({ route }) => {
54
54
  onPress={addSubUnit}
55
55
  style={styles.headerButton}
56
56
  >
57
- <AntDesign name={'plus'} size={27} color={Colors.Black} />
57
+ <IconOutline name={'plus'} size={27} color={Colors.Black} />
58
58
  </TouchableOpacity>
59
59
  <TouchableOpacity
60
60
  // onPress={handleShowMenuAction}
@@ -112,7 +112,7 @@ const ManageSubUnit = ({ route }) => {
112
112
  } devices`}
113
113
  onPress={() => goToEditSubUnit(item, unit)}
114
114
  rightComponent={
115
- <AntDesign
115
+ <IconOutline
116
116
  name="right"
117
117
  size={20}
118
118
  color={Colors.Gray6}
@@ -212,7 +212,9 @@ describe('Test AddSubUnit', () => {
212
212
  },
213
213
  isAddUnit: true,
214
214
  };
215
- mock.onPost(API.UNIT.CREATE_UNIT()).reply(400);
215
+ mock.onPost(API.UNIT.CREATE_UNIT()).reply(400, {
216
+ non_field_errors: 'You have reached max units',
217
+ });
216
218
  await act(async () => {
217
219
  tree = await create(wrapComponent(route));
218
220
  });
@@ -224,7 +226,7 @@ describe('Test AddSubUnit', () => {
224
226
  expect(Toast.show).toHaveBeenCalledWith({
225
227
  type: 'error',
226
228
  position: 'bottom',
227
- text1: getTranslate('en', 'text_create_unit_fail'),
229
+ text1: 'You have reached max units',
228
230
  visibilityTime: 1000,
229
231
  });
230
232
  });
@@ -244,19 +246,17 @@ describe('Test AddSubUnit', () => {
244
246
  await viewButtonBottom.props.onRightClick();
245
247
  });
246
248
  expect(global.mockedNavigate).toHaveBeenCalledWith('UnitDetail', {
247
- params: {
248
- isAddSubUnit: true,
249
- routeName: 'DashboardStack',
250
- stationId: undefined,
251
- unitData: {
252
- id: 1,
253
- name: 'Unit name',
254
- location: {
255
- description: 'location',
256
- },
249
+ isAddSubUnit: true,
250
+ routeName: 'DashboardStack',
251
+ stationId: undefined,
252
+ unitData: {
253
+ id: 1,
254
+ name: 'Unit name',
255
+ location: {
256
+ description: 'location',
257
257
  },
258
- unitId: 1,
259
258
  },
259
+ unitId: 1,
260
260
  });
261
261
  });
262
262
 
@@ -70,7 +70,7 @@ describe('Test EditSubUnit', () => {
70
70
  it('alertAction rightButtonClick success, previous screen Routes.UnitDetail', async () => {
71
71
  mock.onDelete(API.SUB_UNIT.REMOVE_SUB_UNIT(1, 2)).reply(200);
72
72
 
73
- global.mockedDangerouslyGetState.mockImplementation(() => ({
73
+ global.mockedGetState.mockImplementation(() => ({
74
74
  routes: [
75
75
  { name: Routes.UnitDetail },
76
76
  { name: 'route 2' },
@@ -98,7 +98,7 @@ describe('Test EditSubUnit', () => {
98
98
 
99
99
  it('alertAction rightButtonClick success', async () => {
100
100
  mock.onDelete(API.SUB_UNIT.REMOVE_SUB_UNIT(1, 2)).reply(200);
101
- global.mockedDangerouslyGetState.mockImplementation(() => ({
101
+ global.mockedGetState.mockImplementation(() => ({
102
102
  routes: [
103
103
  { name: 'UnitDetail' },
104
104
  { name: 'route 2' },
@@ -122,7 +122,7 @@ describe('Test EditSubUnit', () => {
122
122
  .onDelete('https://backend.eoh.io/api/property_manager/1/sub_units/2/')
123
123
  .reply(400);
124
124
 
125
- global.mockedDangerouslyGetState.mockImplementation(() => ({
125
+ global.mockedGetState.mockImplementation(() => ({
126
126
  routes: [{ name: 'route 1' }, { name: 'route 2' }, { name: 'route 3' }],
127
127
  }));
128
128
 
@@ -9,6 +9,7 @@ import React, {
9
9
  import { Image, TouchableOpacity, View } from 'react-native';
10
10
  import DraggableFlatList from 'react-native-draggable-flatlist';
11
11
 
12
+ import { GestureHandlerRootView } from 'react-native-gesture-handler';
12
13
  import { EmptyComponent } from '../../commons/DevMode';
13
14
  import { HeaderCustom } from '../../commons/Header';
14
15
  import Text from '../../commons/Text';
@@ -16,9 +17,9 @@ import { Images } from '../../configs';
16
17
  import { SCContext } from '../../context';
17
18
  import { Action } from '../../context/actionType';
18
19
  import t from '../../hooks/Common/useTranslations';
20
+ import { notImplemented } from '../../utils/Utils';
19
21
  import { SensorDisplayItem } from '../Device/components/SensorDisplayItem';
20
22
  import styles from './Styles/EditTemplateStyle';
21
- import { notImplemented } from '../../utils/Utils';
22
23
 
23
24
  const EditTemplate = () => {
24
25
  const { setAction } = useContext(SCContext);
@@ -100,7 +101,7 @@ const EditTemplate = () => {
100
101
  {!actionsList?.length ? (
101
102
  renderEmpty
102
103
  ) : (
103
- <>
104
+ <GestureHandlerRootView>
104
105
  <View style={styles.wrapDescription}>
105
106
  <Text style={styles.description}>
106
107
  {t('hold_and_hover_description')}
@@ -109,7 +110,8 @@ const EditTemplate = () => {
109
110
  <DraggableFlatList
110
111
  showsVerticalScrollIndicator={false}
111
112
  data={actionsList}
112
- renderItem={({ item, index, drag }) => {
113
+ renderItem={({ item, getIndex, drag }) => {
114
+ const index = getIndex();
113
115
  return (
114
116
  <TouchableOpacity
115
117
  onLongPress={onDrag(item, drag)}
@@ -153,7 +155,7 @@ const EditTemplate = () => {
153
155
  <Text style={styles.save}>{t('save')}</Text>
154
156
  </TouchableOpacity>
155
157
  </View>
156
- </>
158
+ </GestureHandlerRootView>
157
159
  )}
158
160
  </View>
159
161
  );