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

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 +109 -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 +1 -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 +42 -17
  175. package/src/screens/Automate/ScriptDetail/__test__/useStarredScript.test.js +6 -6
  176. package/src/screens/Automate/ScriptDetail/index.js +51 -40
  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,12 +1,12 @@
1
- import React from 'react';
2
- import { create, act } from 'react-test-renderer';
3
1
  import SegmentedControl from '@react-native-segmented-control/segmented-control';
2
+ import React from 'react';
4
3
  import Carousel from 'react-native-new-snap-carousel';
4
+ import { act, create } from 'react-test-renderer';
5
5
 
6
+ import TabPaneCT from '..';
7
+ import { DEVICE_TYPE } from '../../../../../configs/Constants';
6
8
  import { SCProvider } from '../../../../../context';
7
9
  import { mockSCStore } from '../../../../../context/mockStore';
8
- import { DEVICE_TYPE } from '../../../../../configs/Constants';
9
- import TabPaneCT from '..';
10
10
 
11
11
  const mockSetSelectedIndex = jest.fn();
12
12
  const wrapComponent = (item = []) => (
@@ -58,7 +58,7 @@ describe('Test TabPaneCT', () => {
58
58
  nativeEvent: { selectedSegmentIndex: 1 },
59
59
  });
60
60
  });
61
- expect(mockSetSelectedIndex).toBeCalledWith(1);
61
+ expect(mockSetSelectedIndex).toHaveBeenCalledWith(1);
62
62
  });
63
63
 
64
64
  it('test render TabPaneCT onChange Carousel', async () => {
@@ -72,7 +72,7 @@ describe('Test TabPaneCT', () => {
72
72
  await act(async () => {
73
73
  await carousel[0].props.onSnapToItem(1);
74
74
  });
75
- expect(mockSetSelectedIndex).toBeCalledWith(1);
75
+ expect(mockSetSelectedIndex).toHaveBeenCalledWith(1);
76
76
  });
77
77
 
78
78
  it('test render TabPaneCT none list', async () => {
@@ -2,8 +2,8 @@ import { act, renderHook } from '@testing-library/react-hooks';
2
2
  import MockAdapter from 'axios-mock-adapter';
3
3
  import Toast from 'react-native-toast-message';
4
4
 
5
- import api from '../../../../utils/Apis/axios';
6
5
  import { API } from '../../../../configs';
6
+ import api from '../../../../utils/Apis/axios';
7
7
  import { useGateway } from '../useGateway';
8
8
 
9
9
  const mock = new MockAdapter(api.axiosInstance);
@@ -98,7 +98,7 @@ describe('Test useGateway', () => {
98
98
  await act(async () => {
99
99
  await hook.result.current.deleteGatewayDetail(1);
100
100
  });
101
- expect(Toast.show).toBeCalledWith({
101
+ expect(Toast.show).toHaveBeenCalledWith({
102
102
  position: 'bottom',
103
103
  text1: 'Delete successfully!',
104
104
  text2: undefined,
@@ -1,7 +1,7 @@
1
- import Detail from './components/Detail';
2
- import TabPaneCT from './components/TabPaneCT';
3
1
  import SegmentedControl from '@react-native-segmented-control/segmented-control';
4
2
  import { act } from 'react-test-renderer';
3
+ import Detail from './components/Detail';
4
+ import TabPaneCT from './components/TabPaneCT';
5
5
 
6
6
  export const fetchGatewayCT = async (tree) => {
7
7
  const instance = tree.root;
@@ -16,5 +16,4 @@ export const fetchGatewayCT = async (tree) => {
16
16
  return { tabPaneCT, detail };
17
17
  };
18
18
 
19
- export const flushPromises = () =>
20
- new Promise((resolve) => setImmediate(resolve));
19
+ export const flushPromises = () => new Promise(process.nextTick);
@@ -14,7 +14,13 @@ import RenderActionItem from './RenderActionItem';
14
14
  const ChooseAction = ({ route }) => {
15
15
  const t = useTranslations();
16
16
  const { navigate } = useNavigation();
17
- const { unitId, device, automateId, numberActionCanAdd } = route?.params;
17
+ const {
18
+ unitId,
19
+ device,
20
+ automateId,
21
+ numberActionCanAdd,
22
+ multiUnit = {},
23
+ } = route.params;
18
24
  const [data, setData] = useState([]);
19
25
  const [actions, setActions] = useState([]);
20
26
 
@@ -48,7 +54,7 @@ const ChooseAction = ({ route }) => {
48
54
  API.AUTOMATE.ADD_SCRIPT_ACTION(automateId),
49
55
  {
50
56
  list_action,
51
- unit: unitId,
57
+ unit: unitId || multiUnit.id,
52
58
  }
53
59
  );
54
60
 
@@ -58,7 +64,15 @@ const ChooseAction = ({ route }) => {
58
64
  merge: true,
59
65
  params: { saveAt: moment().valueOf() },
60
66
  });
61
- }, [actions, numberActionCanAdd, automateId, unitId, navigate, t]);
67
+ }, [
68
+ actions,
69
+ numberActionCanAdd,
70
+ automateId,
71
+ unitId,
72
+ multiUnit.id,
73
+ navigate,
74
+ t,
75
+ ]);
62
76
 
63
77
  const handleOnSelectAction = (action) => {
64
78
  setActions((prevActions) => {
@@ -1,17 +1,17 @@
1
+ import { useNavigation } from '@react-navigation/native';
1
2
  import React, { useCallback, useEffect, useState } from 'react';
2
3
  import { View } from 'react-native';
3
- import { useNavigation } from '@react-navigation/native';
4
4
 
5
- import { useTranslations } from '../../../hooks/Common/useTranslations';
5
+ import GridItem from '../../../commons/Grid/GridItem';
6
6
  import Text from '../../../commons/Text';
7
- import { axiosGet } from '../../../utils/Apis/axios';
8
7
  import { API, Colors } from '../../../configs';
8
+ import { AUTOMATE_TYPE } from '../../../configs/Constants';
9
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
10
+ import { axiosGet } from '../../../utils/Apis/axios';
9
11
  import Routes from '../../../utils/Route';
10
- import styles from './Styles/SelectActionStyles';
11
12
  import { LoadingSelectAction } from './Components';
12
- import { AUTOMATE_TYPE } from '../../../configs/Constants';
13
13
  import NewActionWrapper from './NewActionWrapper';
14
- import GridItem from '../../../commons/Grid/GridItem';
14
+ import styles from './Styles/SelectActionStyles';
15
15
 
16
16
  const ChooseConfig = ({ route }) => {
17
17
  const t = useTranslations();
@@ -44,6 +44,7 @@ const ChooseConfig = ({ route }) => {
44
44
  config,
45
45
  automate,
46
46
  closeScreen,
47
+ unitId: automate?.unit,
47
48
  });
48
49
  },
49
50
  [automate, closeScreen, navigate]
@@ -1,14 +1,14 @@
1
+ import { KeyboardAwareScrollView } from '@eohjsc/react-native-keyboard-aware-scroll-view';
1
2
  import React, { useCallback, useMemo } from 'react';
2
3
  import { TouchableOpacity, View } from 'react-native';
3
- import { KeyboardAwareScrollView } from '@eohjsc/react-native-keyboard-aware-scroll-view';
4
4
 
5
- import styles from './Styles/SelectActionStyles';
6
- import AntDesign from 'react-native-vector-icons/AntDesign';
7
- import { Colors } from '../../../configs';
8
5
  import { useNavigation, useRoute } from '@react-navigation/native';
6
+ import { IconOutline } from '@ant-design/icons-react-native';
7
+ import { FullLoading, HeaderCustom } from '../../../commons';
9
8
  import BottomButtonView from '../../../commons/BottomButtonView';
9
+ import { Colors } from '../../../configs';
10
10
  import { AccessibilityLabel } from '../../../configs/Constants';
11
- import { FullLoading, HeaderCustom } from '../../../commons';
11
+ import styles from './Styles/SelectActionStyles';
12
12
 
13
13
  const NewActionWrapper = ({
14
14
  name,
@@ -25,8 +25,8 @@ const NewActionWrapper = ({
25
25
  const { closeScreen } = params;
26
26
 
27
27
  const handleClose = useCallback(() => {
28
- navigate(closeScreen);
29
- }, [closeScreen, navigate]);
28
+ navigate(closeScreen, params);
29
+ }, [closeScreen, navigate, params]);
30
30
 
31
31
  const rightComponent = useMemo(
32
32
  () => (
@@ -35,7 +35,7 @@ const NewActionWrapper = ({
35
35
  onPress={handleClose}
36
36
  accessibilityLabel={AccessibilityLabel.ICON_CLOSE}
37
37
  >
38
- <AntDesign name={'close'} size={24} color={Colors.Black} />
38
+ <IconOutline name={'close'} size={24} color={Colors.Black} />
39
39
  </TouchableOpacity>
40
40
  ),
41
41
  [handleClose]
@@ -1,15 +1,20 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
1
  import { useNavigation } from '@react-navigation/native';
3
- import { fetchWithCache } from '../../../utils/Apis/axios';
2
+ import React, { useCallback, useEffect, useState } from 'react';
4
3
  import { API } from '../../../configs';
4
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
5
+ import { fetchWithCache } from '../../../utils/Apis/axios';
5
6
  import Routes from '../../../utils/Route';
6
7
  import SelectDevices from './Components/SelectDevices';
7
- import { useTranslations } from '../../../hooks/Common/useTranslations';
8
8
 
9
9
  const SelectControlDevices = ({ route }) => {
10
10
  const t = useTranslations();
11
- const { unitId, closeScreen, automateId, numberActionCanAdd } =
12
- route?.params || {};
11
+ const {
12
+ unitId,
13
+ closeScreen,
14
+ automateId,
15
+ numberActionCanAdd,
16
+ multiUnit = {},
17
+ } = route.params || {};
13
18
 
14
19
  const [stations, setStations] = useState([]);
15
20
  const [listStation, setListStation] = useState([]);
@@ -19,22 +24,26 @@ const SelectControlDevices = ({ route }) => {
19
24
  const [loading, setLoading] = useState(true);
20
25
 
21
26
  const fetchDetails = useCallback(async () => {
22
- await fetchWithCache(API.UNIT.DEVICE_CONTROL(unitId), {}, (response) => {
23
- const { success, data } = response;
24
- if (success) {
25
- const newData = data.filter((item) => item.sensors.length > 0);
26
- const listMenu = newData.map((item, index) => ({
27
- text: item.name,
28
- station: item,
29
- index: index,
30
- }));
31
- setStations(newData);
32
- setListMenuItem(listMenu);
33
- setListStation(listMenu);
27
+ await fetchWithCache(
28
+ API.UNIT.DEVICE_CONTROL(unitId || multiUnit.id),
29
+ {},
30
+ (response) => {
31
+ const { success, data } = response;
32
+ if (success) {
33
+ const newData = data.filter((item) => item.sensors.length > 0);
34
+ const listMenu = newData.map((item, index) => ({
35
+ text: item.name,
36
+ station: item,
37
+ index: index,
38
+ }));
39
+ setStations(newData);
40
+ setListMenuItem(listMenu);
41
+ setListStation(listMenu);
42
+ }
34
43
  }
35
- });
44
+ );
36
45
  setLoading(false);
37
- }, [unitId]);
46
+ }, [multiUnit.id, unitId]);
38
47
 
39
48
  useEffect(() => {
40
49
  fetchDetails();
@@ -48,9 +57,10 @@ const SelectControlDevices = ({ route }) => {
48
57
  device: selectedDevice,
49
58
  closeScreen,
50
59
  numberActionCanAdd,
60
+ multiUnit,
51
61
  });
52
62
  },
53
- [navigate, unitId, automateId, closeScreen, numberActionCanAdd]
63
+ [navigate, unitId, automateId, closeScreen, numberActionCanAdd, multiUnit]
54
64
  );
55
65
 
56
66
  if (loading) {
@@ -1,16 +1,22 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
1
  import { useNavigation } from '@react-navigation/native';
2
+ import React, { useCallback, useEffect, useState } from 'react';
3
3
 
4
+ import { API } from '../../../configs';
5
+ import { AUTOMATE_TYPE } from '../../../configs/Constants';
4
6
  import { useTranslations } from '../../../hooks/Common/useTranslations';
5
7
  import { fetchWithCache } from '../../../utils/Apis/axios';
6
- import { API } from '../../../configs';
7
8
  import Routes from '../../../utils/Route';
8
9
  import SelectDevices from './Components/SelectDevices';
9
- import { AUTOMATE_TYPE } from '../../../configs/Constants';
10
10
 
11
11
  const SelectMonitorDevices = ({ route }) => {
12
12
  const t = useTranslations();
13
- const { automate = {}, isCreateNewAction, closeScreen } = route?.params || {};
13
+ const {
14
+ automate = {},
15
+ isCreateNewAction,
16
+ closeScreen,
17
+ multiUnit = {},
18
+ } = route.params || {};
19
+ const { type, unit, sensor_id } = automate;
14
20
 
15
21
  const [stations, setStations] = useState([]);
16
22
  const [listStation, setListStation] = useState([]);
@@ -22,11 +28,11 @@ const SelectMonitorDevices = ({ route }) => {
22
28
 
23
29
  const fetchDetails = useCallback(async () => {
24
30
  const configs = { params: {} };
25
- if (automate?.type === AUTOMATE_TYPE.EVENT) {
31
+ if (type === AUTOMATE_TYPE.EVENT) {
26
32
  configs.params.type = 'event';
27
33
  }
28
34
  await fetchWithCache(
29
- API.UNIT.DEVICE_SENSOR(automate?.unit),
35
+ API.UNIT.DEVICE_SENSOR(unit || multiUnit.id),
30
36
  configs,
31
37
  (response) => {
32
38
  const { success, data } = response;
@@ -46,17 +52,17 @@ const SelectMonitorDevices = ({ route }) => {
46
52
  }
47
53
  );
48
54
  setLoading(false);
49
- }, [automate?.type, automate?.unit]);
55
+ }, [multiUnit.id, type, unit]);
50
56
 
51
57
  useEffect(() => {
52
- if (!automate?.sensor_id) {
58
+ if (!sensor_id) {
53
59
  return;
54
60
  }
55
61
  let selectSensor = {};
56
62
  let found = false;
57
63
  for (let i = 0; i < stations.length; i++) {
58
64
  for (let j = 0; j < stations[i].sensors.length; j++) {
59
- if (stations[i].sensors[j].id === automate.sensor_id) {
65
+ if (stations[i].sensors[j].id === sensor_id) {
60
66
  selectSensor = stations[i].sensors[j];
61
67
  found = true;
62
68
  break;
@@ -67,7 +73,7 @@ const SelectMonitorDevices = ({ route }) => {
67
73
  }
68
74
  }
69
75
  setDefaultSelectedDevice(selectSensor);
70
- }, [automate?.sensor_id, stations]);
76
+ }, [sensor_id, stations]);
71
77
 
72
78
  useEffect(() => {
73
79
  fetchDetails();
@@ -86,6 +92,7 @@ const SelectMonitorDevices = ({ route }) => {
86
92
  stationName: stations[indexStation]?.name,
87
93
  isCreateNewAction,
88
94
  closeScreen,
95
+ unitId: automate?.unit,
89
96
  });
90
97
  },
91
98
  [navigate, automate, stations, isCreateNewAction, closeScreen]
@@ -1,17 +1,21 @@
1
- import React, { useMemo, useState } from 'react';
2
- import { View, TouchableOpacity, FlatList } from 'react-native';
1
+ import React, { useCallback, useMemo, useState } from 'react';
2
+ import { View } from 'react-native';
3
3
 
4
- import styles from './Styles/SetupSensorStyles';
5
- import { useTranslations } from '../../../hooks/Common/useTranslations';
6
- import Text from '../../../commons/Text';
7
- import { useNavigation, useRoute } from '@react-navigation/native';
8
- import NewActionWrapper from './NewActionWrapper';
4
+ import {
5
+ useFocusEffect,
6
+ useNavigation,
7
+ useRoute,
8
+ } from '@react-navigation/native';
9
+ import { Button } from '../../../commons';
10
+ import TextInput from '../../../commons/Form/TextInput';
9
11
  import GridItem from '../../../commons/Grid/GridItem';
10
- import Routes from '../../../utils/Route';
11
12
  import ModalCustom from '../../../commons/Modal/ModalCustom';
13
+ import Text from '../../../commons/Text';
14
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
15
+ import Routes from '../../../utils/Route';
12
16
  import { ToastBottomHelper } from '../../../utils/Utils';
13
- import CheckBox from '@react-native-community/checkbox';
14
- import TextInput from '../../../commons/Form/TextInput';
17
+ import NewActionWrapper from './NewActionWrapper';
18
+ import styles from './Styles/SetupSensorStyles';
15
19
 
16
20
  const valueEvaluationToOptions = (valueEvaluation) => {
17
21
  if (valueEvaluation.template === 'range') {
@@ -43,7 +47,7 @@ const SetupConfigCondition = () => {
43
47
  const t = useTranslations();
44
48
  const { navigate } = useNavigation();
45
49
  const { params = {} } = useRoute();
46
- const { config, automate, closeScreen } = params;
50
+ const { config, automate, closeScreen, unitId } = params;
47
51
  const [selectedCondition, setSelectedCondition] = useState(undefined);
48
52
  const [customCondition, setCustomCondition] = useState(undefined);
49
53
  const [isShowModal, setIsShowModal] = useState(false);
@@ -54,7 +58,7 @@ const SetupConfigCondition = () => {
54
58
  value: '<',
55
59
  },
56
60
  {
57
- label: `${t('is')} (=)`,
61
+ label: `${t('is_equal')} (=)`,
58
62
  value: '=',
59
63
  },
60
64
  {
@@ -88,15 +92,21 @@ const SetupConfigCondition = () => {
88
92
  navigate(Routes.ValueChangeName, {
89
93
  automate,
90
94
  closeScreen,
95
+ unitId,
91
96
  });
92
97
  };
93
98
 
94
- const resetCustomizeCondition = () => {
99
+ const resetCustomizeCondition = useCallback(() => {
95
100
  automate.condition = null;
96
101
  automate.value = null;
97
102
  setCustomCondition(undefined);
98
- setIsShowModal(false);
99
- };
103
+ }, [automate]);
104
+
105
+ useFocusEffect(
106
+ useCallback(() => {
107
+ resetCustomizeCondition();
108
+ }, [resetCustomizeCondition])
109
+ );
100
110
 
101
111
  return (
102
112
  <NewActionWrapper name={t('set_up {name}', { name: config?.name })}>
@@ -127,61 +137,65 @@ const SetupConfigCondition = () => {
127
137
  </GridItem>
128
138
  </View>
129
139
  <ModalCustom
130
- onBackdropPress={() => resetCustomizeCondition()}
140
+ onBackdropPress={() => setIsShowModal(false)}
131
141
  isVisible={isShowModal}
132
142
  style={styles.modal}
133
143
  >
134
144
  <View style={styles.modalContent}>
135
- <Text type="Body">
145
+ <Text type="Body" bold style={styles.titleCondition}>
136
146
  {t('when_value_is', { config_name: config.name })}
137
147
  </Text>
138
- <FlatList
139
- renderHeader={t('condition')}
140
- data={normalConditions}
141
- renderItem={({ item }) => {
148
+ <View style={styles.flatListCondition}>
149
+ {normalConditions.map((item) => {
142
150
  return (
143
- <View>
144
- <Text>{item.label}</Text>
145
- <CheckBox
146
- onChange={() => {
147
- automate.condition = item.value;
148
- setCustomCondition(item.value);
149
- }}
150
- value={item.value === customCondition}
151
- />
152
- </View>
151
+ <GridItem
152
+ onPress={() => {
153
+ automate.condition = item.value;
154
+ setCustomCondition(item.value);
155
+ }}
156
+ selected={item.value === customCondition}
157
+ style={styles.gridItem}
158
+ >
159
+ <Text type="Body">{item.label}</Text>
160
+ </GridItem>
153
161
  );
154
- }}
155
- />
162
+ })}
163
+ </View>
164
+
156
165
  <View style={styles.inputValue}>
157
- <Text>{t('value')}</Text>
158
166
  <TextInput
159
167
  keyboardType="decimal-pad"
160
168
  type="number"
161
169
  maxLength={10}
170
+ placeholder={t('value')}
162
171
  onChange={(value) => {
163
172
  const floatValue = parseFloat(value.replace(',', '.'));
164
173
  automate.value = floatValue;
165
174
  }}
166
- style={styles.numberInput}
175
+ textInputStyle={styles.numberInput}
176
+ wrapStyle={styles.wrapTextInput}
167
177
  />
168
178
  </View>
169
- <TouchableOpacity
179
+
180
+ <Button
181
+ type="primary"
182
+ title={t('continue')}
170
183
  testID={'continue_button'}
171
184
  onPress={() => {
172
- if (
173
- !automate.value ||
174
- automate.condition === 'value_evaluation'
175
- ) {
185
+ if (!automate.value || !automate.condition) {
176
186
  ToastBottomHelper.error(t('please_enter_a_number'), '', 3000);
177
187
  return;
178
188
  }
179
189
  setIsShowModal(false);
180
- navigate(Routes.ValueChangeName, { automate, closeScreen });
190
+ navigate(Routes.ValueChangeName, {
191
+ automate,
192
+ closeScreen,
193
+ unitId,
194
+ });
181
195
  }}
182
- >
183
- <Text>{t('continue')}</Text>
184
- </TouchableOpacity>
196
+ style={styles.buttonContinue}
197
+ textSemiBold={false}
198
+ />
185
199
  </View>
186
200
  </ModalCustom>
187
201
  </NewActionWrapper>
@@ -40,7 +40,7 @@ const SetupScriptDelay = ({ route }) => {
40
40
  params: { saveAt: moment().valueOf() },
41
41
  });
42
42
  } else {
43
- ToastBottomHelper.error(t('text_done'));
43
+ ToastBottomHelper.error(t('error_please_try_later'));
44
44
  }
45
45
  }, [automateId, navigate, delay, t]);
46
46
 
@@ -17,9 +17,9 @@ import moment from 'moment';
17
17
  const SetupScriptNotify = ({ route }) => {
18
18
  const t = useTranslations();
19
19
  const { goBack, navigate } = useNavigation();
20
- const { automate = {}, unitId } = route?.params || {};
20
+ const { automate = {}, unitId, multiUnit } = route.params || {};
21
21
  const { id: automateId } = automate;
22
- const [notify, setNotify] = useState({ unit: unitId });
22
+ const [notify, setNotify] = useState({ unit: unitId || multiUnit.id });
23
23
 
24
24
  const onChangeTitle = (value) => {
25
25
  setNotify((state) => ({
@@ -47,7 +47,7 @@ const SetupScriptNotify = ({ route }) => {
47
47
  params: { saveAt: moment().valueOf() },
48
48
  });
49
49
  } else {
50
- ToastBottomHelper.error(t('text_done'));
50
+ ToastBottomHelper.error(t('error_please_try_later'));
51
51
  }
52
52
  }, [automateId, navigate, notify, t]);
53
53
 
@@ -1,5 +1,5 @@
1
1
  import { StyleSheet } from 'react-native';
2
- import { Theme, Colors } from '../../../../configs';
2
+ import { Colors, Theme } from '../../../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
5
  ...Theme,
@@ -11,10 +11,9 @@ export default StyleSheet.create({
11
11
  },
12
12
  inputValue: { marginBottom: 10 },
13
13
  numberInput: {
14
- borderRadius: 5,
14
+ borderRadius: 8,
15
15
  borderWidth: 1,
16
- height: 38,
17
- marginTop: 10,
16
+ height: 50,
18
17
  },
19
18
  boxDevices: {
20
19
  flexWrap: 'wrap',
@@ -43,4 +42,21 @@ export default StyleSheet.create({
43
42
  width: '100%',
44
43
  borderRadius: 10,
45
44
  },
45
+ titleCondition: {
46
+ marginBottom: 16,
47
+ },
48
+ wrapTextInput: {
49
+ marginTop: 0,
50
+ },
51
+ flatListCondition: {
52
+ display: 'flex',
53
+ flexDirection: 'row',
54
+ justifyContent: 'space-between',
55
+ },
56
+ gridItem: {
57
+ width: 'fit-content',
58
+ },
59
+ buttonContinue: {
60
+ flex: 0,
61
+ },
46
62
  });
@@ -1,19 +1,19 @@
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 ChooseAction from '../ChooseAction';
6
- import { SCProvider } from '../../../../context';
7
- import { mockSCStore } from '../../../../context/mockStore';
5
+ import { useNavigation } from '@react-navigation/native';
6
+ import { TouchableOpacity } from 'react-native';
8
7
  import BottomButtonView from '../../../../commons/BottomButtonView';
8
+ import SelectActionCard from '../../../../commons/SelectActionCard';
9
+ import { API } from '../../../../configs';
9
10
  import { AccessibilityLabel, DEVICE_TYPE } from '../../../../configs/Constants';
11
+ import { SCProvider } from '../../../../context';
12
+ import { mockSCStore } from '../../../../context/mockStore';
10
13
  import api from '../../../../utils/Apis/axios';
11
- import { API } from '../../../../configs';
12
- import { TouchableOpacity } from 'react-native';
13
- import SelectActionCard from '../../../../commons/SelectActionCard';
14
- import { useNavigation } from '@react-navigation/native';
15
- import { ToastBottomHelper } from '../../../../utils/Utils';
16
14
  import { getTranslate } from '../../../../utils/I18n';
15
+ import { ToastBottomHelper } from '../../../../utils/Utils';
16
+ import ChooseAction from '../ChooseAction';
17
17
 
18
18
  const mock = new MockAdapter(api.axiosInstance);
19
19
 
@@ -391,7 +391,7 @@ describe('Test ChooseAction', () => {
391
391
  await act(async () => {
392
392
  tree = await renderer.create(wrapComponent(route));
393
393
  });
394
- expect(spyToastError).toBeCalledWith(
394
+ expect(spyToastError).toHaveBeenCalledWith(
395
395
  getTranslate('en', 'template_not_supported', {
396
396
  template: response[0].template,
397
397
  }),
@@ -459,7 +459,7 @@ describe('Test ChooseAction', () => {
459
459
  await buttonSave.props.onPress();
460
460
  });
461
461
 
462
- expect(spyToastError).toBeCalledWith(
462
+ expect(spyToastError).toHaveBeenCalledWith(
463
463
  'You can only add more 0 action',
464
464
  null,
465
465
  3000
@@ -617,7 +617,7 @@ describe('Test ChooseAction', () => {
617
617
  await buttonSave.props.onPress();
618
618
  });
619
619
 
620
- expect(spyToastError).toBeCalledWith(
620
+ expect(spyToastError).toHaveBeenCalledWith(
621
621
  'You can only add more 2 actions',
622
622
  null,
623
623
  3000