@eohjsc/react-native-smart-city 0.3.90 → 0.3.92

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 (312) hide show
  1. package/package.json +1 -1
  2. package/src/Images/Common/reorder.svg +3 -0
  3. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/AutoLockStyles.js +1 -1
  4. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +3 -1
  5. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/index.js +3 -3
  6. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +3 -10
  7. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +1 -0
  8. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/SetupGeneratePasscodeStyles.js +1 -1
  9. package/src/commons/ActionGroup/OnOffTemplate/SwitchButtonTemplate.js +13 -5
  10. package/src/commons/ActionGroup/SliderRangeTemplate.js +100 -69
  11. package/src/commons/ActionGroup/SliderRangeTemplateStyles.js +27 -27
  12. package/src/commons/ActionGroup/StatesGridActionTemplate.js +4 -1
  13. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +1 -1
  14. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +4 -1
  15. package/src/commons/ActionGroup/__test__/SliderRangeTemplate.test.js +56 -0
  16. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +2 -2
  17. package/src/commons/ActionGroup/__test__/SwitchButtonTemplate.test.js +45 -8
  18. package/src/commons/ActionGroup/__test__/index.test.js +0 -19
  19. package/src/commons/ActionGroup/index.js +0 -3
  20. package/src/commons/ActionTemplate/CurtainAction.js +5 -5
  21. package/src/commons/ActionTemplate/CurtainActionStyles.js +1 -1
  22. package/src/commons/ActionTemplate/OnOffButtonAction.js +4 -4
  23. package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +1 -1
  24. package/src/commons/ActionTemplate/OnOffSimpleAction.js +4 -4
  25. package/src/commons/ActionTemplate/OnOffSimpleActionStyles.js +1 -1
  26. package/src/commons/ActionTemplate/OnOffSmartLockAction.js +4 -4
  27. package/src/commons/ActionTemplate/OnOffSmartLockActionStyles.js +1 -1
  28. package/src/commons/ActionTemplate/OneButtonAction.js +3 -3
  29. package/src/commons/ActionTemplate/OneButtonActionStyles.js +1 -1
  30. package/src/commons/ActionTemplate/ThreeButtonAction.js +5 -5
  31. package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +1 -1
  32. package/src/commons/ActionTemplate/__test__/CurtainAction.test.js +1 -1
  33. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +1 -1
  34. package/src/commons/ActionTemplate/__test__/OnOffSimpleAction.test.js +1 -1
  35. package/src/commons/ActionTemplate/__test__/OnOffSmartLockAction.test.js +1 -1
  36. package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +1 -1
  37. package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +1 -1
  38. package/src/commons/ActionTemplate/__test__/index.test.js +21 -70
  39. package/src/commons/ActionTemplate/index.js +19 -55
  40. package/src/commons/Alert/__test__/Alert.test.js +1 -1
  41. package/src/commons/Auth/AccountList.js +1 -1
  42. package/src/commons/Auth/__test__/OtpInputList.test.js +17 -19
  43. package/src/commons/Automate/ItemAutomate.js +10 -4
  44. package/src/commons/Automate/__test__/ItemAutomate.test.js +11 -11
  45. package/src/commons/BackDefault/__test__/BackDefault.test.js +1 -1
  46. package/src/commons/Button/__test__/Button.test.js +1 -1
  47. package/src/commons/ButtonPopup/__test__/ButtonPopup.test.js +1 -1
  48. package/src/commons/Calendar/__test__/Calendar.test.js +1 -1
  49. package/src/commons/ChartLoading/__test__/ChartLoading.test.js +1 -1
  50. package/src/commons/CircleButton/__test__/CircleButton.test.js +1 -1
  51. package/src/commons/CircleView/__test__/CircleView.test.js +1 -1
  52. package/src/commons/DateTimeRangeChange/__test__/DateTimeButton.test.js +4 -2
  53. package/src/commons/DateTimeRangeChange/index.js +31 -48
  54. package/src/commons/Device/DeviceAlertStatus.js +2 -1
  55. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +2 -2
  56. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +1 -1
  57. package/src/commons/Device/FlatListItems.js +1 -1
  58. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +2 -2
  59. package/src/commons/Device/HistoryChart.js +6 -49
  60. package/src/commons/Device/LinearChart/LinearChart.test.js +1 -1
  61. package/src/commons/Device/ProgressBar/__test__/ProgressBar.test.js +1 -1
  62. package/src/commons/Device/ProgressBar/index.js +5 -11
  63. package/src/commons/Device/ProgressBar/styles.js +11 -3
  64. package/src/commons/Device/RainningSensor/__test__/CurrentRainSensor.test.js +5 -5
  65. package/src/commons/Device/SonosSpeaker/__test__/SonosSpeaker.test.js +3 -3
  66. package/src/commons/Device/WindDirection/Compass/Compass.test.js +2 -2
  67. package/src/commons/Device/WindSpeed/Anemometer/index.js +2 -0
  68. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +14 -1
  69. package/src/commons/Device/WindSpeed/LinearChart/index.js +5 -3
  70. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +3 -3
  71. package/src/commons/Device/__test__/DisconnectedView.test.js +2 -2
  72. package/src/commons/Device/__test__/FlatListItems.test.js +1 -1
  73. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +1 -1
  74. package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +1 -1
  75. package/src/commons/FlatListDnD/__test__/index.test.js +49 -0
  76. package/src/commons/FlatListDnD/index.js +37 -0
  77. package/src/commons/FlatListDnD/styles.js +12 -0
  78. package/src/commons/Form/__test__/CurrencyInput.test.js +2 -2
  79. package/src/commons/Form/__test__/TextInput.test.js +3 -3
  80. package/src/commons/Form/__test__/TextInputPassword.test.js +2 -2
  81. package/src/commons/FullLoading/__test__/index.test.js +2 -2
  82. package/src/commons/Header/HeaderCustom.js +2 -1
  83. package/src/commons/HorizontalPicker/index.js +65 -38
  84. package/src/commons/IconComponent/index.js +3 -2
  85. package/src/commons/ImageButton/__test__/ImageButton.test.js +1 -1
  86. package/src/commons/MediaPlayer/__test__/index.test.js +8 -3
  87. package/src/commons/MediaPlayer/index.js +11 -7
  88. package/src/commons/MenuActionMore/index.js +6 -4
  89. package/src/commons/Modal/ModalBottom.js +2 -3
  90. package/src/commons/Modal/ModalCustom.js +2 -3
  91. package/src/commons/NavBar/index.js +48 -50
  92. package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +3 -3
  93. package/src/commons/OneTapTemplate/NumberUpDownActionTemplateStyles.js +1 -1
  94. package/src/commons/OneTapTemplate/OptionsDropdownActionTemplate.js +5 -5
  95. package/src/commons/OneTapTemplate/OptionsDropdownActionTemplateStyles.js +1 -1
  96. package/src/commons/OneTapTemplate/StatesGridActionTemplate.js +5 -5
  97. package/src/commons/OneTapTemplate/StatesGridActionTemplateStyles.js +1 -1
  98. package/src/commons/OneTapTemplate/__test__/NumberUpDownActionTemplate.test.js +2 -2
  99. package/src/commons/OneTapTemplate/__test__/OptionsDropdownActionTemplate.test.js +1 -1
  100. package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +2 -2
  101. package/src/commons/PreventAccess/index.js +1 -1
  102. package/src/commons/RowItem/__test__/RowItem.test.js +1 -1
  103. package/src/commons/RowUser/__test__/RowUser.test.js +1 -1
  104. package/src/commons/Section/Section.test.js +2 -2
  105. package/src/commons/SelectSubUnit/__test__/SelectSubUnit.test.js +1 -1
  106. package/src/commons/SelectUnit/__test__/SelectUnit.test.js +3 -3
  107. package/src/commons/Sharing/StationDevicePermissions.js +4 -4
  108. package/src/commons/Sharing/WrapHeaderScrollable.js +5 -5
  109. package/src/commons/Sharing/__test__/ButtonRemoveMember.test.js +1 -1
  110. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +3 -3
  111. package/src/commons/Sharing/__test__/MemberList.test.js +6 -4
  112. package/src/commons/Sharing/__test__/RowMember.test.js +2 -2
  113. package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +4 -2
  114. package/src/commons/SubUnit/OneTap/ItemOneTap.js +7 -11
  115. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +13 -16
  116. package/src/commons/SubUnit/OneTap/index.js +22 -7
  117. package/src/commons/TextButton/__test__/TextButton.test.js +2 -2
  118. package/src/commons/Today/__test__/Today.test.js +1 -1
  119. package/src/commons/TouchableScale/__test__/TouchableScale.test.js +1 -1
  120. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +4 -0
  121. package/src/commons/UnitSummary/AirQuality/index.js +2 -2
  122. package/src/commons/UnitSummary/ConfigHistoryChart/__test__/ConfigHistoryChart.test.js +1 -1
  123. package/src/commons/UnitSummary/ConfigHistoryChart/index.js +0 -6
  124. package/src/commons/UnitSummary/__test__/TotalPowerBox.test.js +1 -1
  125. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +1 -1
  126. package/src/commons/ViewButtonBottom/__test__/ViewButtonBottom.test.js +1 -1
  127. package/src/configs/API.js +14 -31
  128. package/src/configs/AccessibilityLabel.js +1 -0
  129. package/src/configs/Colors.js +1 -1
  130. package/src/configs/Constants.js +14 -48
  131. package/src/context/reducer.ts +3 -1
  132. package/src/hoc/__test__/withRemoteControl.test.js +1 -1
  133. package/src/hooks/Common/__test__/useStatusbar.test.js +5 -5
  134. package/src/hooks/Common/index.js +0 -2
  135. package/src/hooks/Common/useKeyboardShow.js +4 -4
  136. package/src/hooks/Common/useStatusBar.js +2 -2
  137. package/src/hooks/Common/useTitleHeader.js +5 -7
  138. package/src/hooks/IoT/__test__/useRemoteControl.test.js +11 -0
  139. package/src/hooks/IoT/useBluetoothConnection.js +6 -3
  140. package/src/hooks/index.js +1 -2
  141. package/src/navigations/UnitStack.js +51 -17
  142. package/src/screens/ActivityLog/FilterPopup.js +4 -4
  143. package/src/screens/ActivityLog/__test__/FilterPopup.test.js +2 -2
  144. package/src/screens/ActivityLog/__test__/index.test.js +2 -2
  145. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +3 -3
  146. package/src/screens/AddCommon/__test__/SelectUnit.test.js +5 -5
  147. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +9 -33
  148. package/src/screens/AddNewAutoSmart/index.js +33 -89
  149. package/src/screens/AddNewGateway/PlugAndPlay/__test__/ConnectRouterGuide.test.js +1 -1
  150. package/src/screens/AddNewGateway/PlugAndPlay/__test__/FirstWarning.test.js +1 -1
  151. package/src/screens/AddNewGateway/PlugAndPlay/__test__/ZigbeeDeviceConnectGuide.test.js +1 -1
  152. package/src/screens/AddNewGateway/SelectDeviceSubUnit.js +1 -2
  153. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +5 -17
  154. package/src/screens/AddNewGateway/__test__/ConnectingWifiGuide.test.js +1 -1
  155. package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +2 -2
  156. package/src/screens/AddNewGateway/__test__/ScanModbusQR.test.js +3 -3
  157. package/src/screens/AddNewGateway/__test__/ScanWifiDeviceQR.test.js +2 -2
  158. package/src/screens/AddNewGateway/__test__/SelectDeviceSubUnit.test.js +8 -16
  159. package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +10 -12
  160. package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +6 -14
  161. package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +6 -14
  162. package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +1 -1
  163. package/src/screens/AddNewGateway/hooks/__Tests__/useWifiManage.test.js +3 -2
  164. package/src/screens/AddNewGateway/index.js +1 -1
  165. package/src/screens/AllCamera/__test__/index.test.js +18 -57
  166. package/src/screens/AllCamera/index.js +100 -33
  167. package/src/screens/AllGateway/DetailConfigActionZigbee/__test__/index.test.js +0 -18
  168. package/src/screens/AllGateway/DetailConfigActionZigbee/index.js +1 -1
  169. package/src/screens/AllGateway/DeviceModbusDetail/__test__/index.test.js +5 -2
  170. package/src/screens/AllGateway/hooks/__test__/index.test.js +1 -1
  171. package/src/screens/Automate/AddNewAction/ChooseAction.js +139 -0
  172. package/src/screens/Automate/AddNewAction/ChooseConfig.js +179 -0
  173. package/src/screens/{AddNewAction → Automate/AddNewAction}/Components/LoadingSelectAction.js +1 -1
  174. package/src/screens/Automate/AddNewAction/Components/SelectDevices.js +75 -0
  175. package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/DeviceStyles.js +5 -1
  176. package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/__test__/index.test.js +4 -4
  177. package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/index.js +5 -4
  178. package/src/screens/Automate/AddNewAction/NewActionWrapper.js +56 -0
  179. package/src/screens/Automate/AddNewAction/SelectControlDevices.js +69 -0
  180. package/src/screens/Automate/AddNewAction/SelectMonitorDevices.js +110 -0
  181. package/src/screens/Automate/AddNewAction/SetupConfigCondition.js +196 -0
  182. package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SelectActionStyles.js +1 -1
  183. package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SelectSensorDevicesStyles.js +1 -1
  184. package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SetupSensorStyles.js +5 -3
  185. package/src/screens/{AddNewAction/__test__/SelectAction.test.js → Automate/AddNewAction/__test__/ChooseAction.test.js} +101 -122
  186. package/src/screens/Automate/AddNewAction/__test__/ChooseConfig.test.js +210 -0
  187. package/src/screens/Automate/AddNewAction/__test__/SelectControlDevices.test.js +130 -0
  188. package/src/screens/Automate/AddNewAction/__test__/SelectMonitorDevices.test.js +92 -0
  189. package/src/screens/Automate/AddNewAction/__test__/SetupSensor.test.js +131 -0
  190. package/src/screens/Automate/Components/InputName.js +64 -0
  191. package/src/screens/{AddNewOneTap/AddNewOneTapStyles.js → Automate/Components/InputNameStyles.js} +2 -2
  192. package/src/screens/{EditActionsList → Automate/EditActionsList}/Styles/indexStyles.js +5 -1
  193. package/src/screens/{EditActionsList → Automate/EditActionsList}/__tests__/index.test.js +20 -12
  194. package/src/screens/{EditActionsList → Automate/EditActionsList}/index.js +18 -19
  195. package/src/screens/Automate/MultiUnits.js +70 -68
  196. package/src/screens/Automate/OneTap/__test__/AddNewOneTap.test.js +134 -0
  197. package/src/screens/Automate/OneTap/index.js +16 -0
  198. package/src/screens/Automate/Scenario/ScenarioName.js +15 -0
  199. package/src/screens/{AddNewOneTap → Automate/Scenario}/__test__/AddNewOneTap.test.js +27 -45
  200. package/src/screens/Automate/ScriptDetail/Components/DeleteScript.js +45 -0
  201. package/src/screens/Automate/ScriptDetail/Components/RenameScript.js +58 -0
  202. package/src/screens/{ScriptDetail → Automate/ScriptDetail}/Styles/indexStyles.js +1 -1
  203. package/src/screens/{ScriptDetail → Automate/ScriptDetail}/__test__/index.test.js +67 -76
  204. package/src/screens/{ScriptDetail → Automate/ScriptDetail}/__test__/useStarredScript.test.js +7 -6
  205. package/src/screens/{ScriptDetail → Automate/ScriptDetail}/hooks/useStarredScript.js +4 -4
  206. package/src/screens/Automate/ScriptDetail/index.js +346 -0
  207. package/src/screens/Automate/ScriptDetail/utils.js +113 -0
  208. package/src/screens/{SetSchedule → Automate/SetSchedule}/__test__/SelectWeekday.test.js +2 -2
  209. package/src/screens/{SetSchedule → Automate/SetSchedule}/__test__/index.test.js +21 -46
  210. package/src/screens/{SetSchedule → Automate/SetSchedule}/components/RepeatOptionsPopup.js +4 -4
  211. package/src/screens/{SetSchedule → Automate/SetSchedule}/components/RowItem.js +2 -2
  212. package/src/screens/{SetSchedule → Automate/SetSchedule}/components/SelectWeekday.js +3 -3
  213. package/src/screens/Automate/SetSchedule/index.js +140 -0
  214. package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/RepeatOptionsPopupStyles.js +1 -1
  215. package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/RowItemStyles.js +1 -1
  216. package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/SelectWeekdayStyles.js +1 -1
  217. package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/indexStyles.js +1 -1
  218. package/src/screens/Automate/ValueChange/ValueChangeName.js +16 -0
  219. package/src/screens/Automate/__test__/MultiUnits.test.js +78 -122
  220. package/src/screens/Automate/__test__/index.test.js +21 -47
  221. package/src/screens/Automate/constants.js +0 -0
  222. package/src/screens/Automate/index.js +18 -24
  223. package/src/screens/ChangePosition/__test__/index.test.js +75 -0
  224. package/src/screens/ChangePosition/index.js +112 -0
  225. package/src/screens/ChangePosition/styles.js +87 -0
  226. package/src/screens/Device/__test__/DetailHistoryChart.test.js +2 -2
  227. package/src/screens/Device/__test__/EmergencyCountdown.test.js +4 -2
  228. package/src/screens/Device/__test__/detail.test.js +202 -257
  229. package/src/screens/Device/__test__/sensorDisplayItem.test.js +14 -10
  230. package/src/screens/Device/components/ChartWrapper.js +3 -3
  231. package/src/screens/Device/components/SensorDisplayItem.js +2 -1
  232. package/src/screens/Device/components/VisualChart.js +56 -9
  233. package/src/screens/Device/components/__test__/VisualChart.test.js +1 -1
  234. package/src/screens/Device/detail.js +14 -0
  235. package/src/screens/Device/hooks/__test__/useEmergencyButton.test.js +35 -13
  236. package/src/screens/Device/hooks/useEvaluateValue.js +28 -2
  237. package/src/screens/Device/styles.js +7 -0
  238. package/src/screens/DeviceInfo/__test__/index.test.js +16 -18
  239. package/src/screens/DeviceInfo/index.js +6 -5
  240. package/src/screens/GuestInfo/components/__test__/AccessScheduleSheet.test.js +52 -0
  241. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +18 -13
  242. package/src/screens/Notification/__test__/Notification.test.js +64 -73
  243. package/src/screens/Notification/index.js +14 -14
  244. package/src/screens/PlayBackCamera/index.js +2 -3
  245. package/src/screens/SelectUnit/__test__/index.test.js +0 -5
  246. package/src/screens/SelectUnit/index.js +1 -2
  247. package/src/screens/SharedUnit/index.js +5 -4
  248. package/src/screens/Sharing/Components/TitleCheckBox.js +2 -2
  249. package/src/screens/Sharing/SelectUser.js +2 -2
  250. package/src/screens/Sharing/__test__/MemberList.test.js +9 -15
  251. package/src/screens/Sharing/__test__/MemberList2.test.js +10 -16
  252. package/src/screens/Sharing/__test__/SelectUser.test.js +8 -4
  253. package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +1 -1
  254. package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js +3 -3
  255. package/src/screens/SmartAccount/__test__/Connecting.test.js +1 -1
  256. package/src/screens/SmartAccount/__test__/SmartAccount.test.js +3 -3
  257. package/src/screens/SmartAccount/index.js +1 -0
  258. package/src/screens/SmartIr/__test__/ButtonsBottom.test.js +1 -1
  259. package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +5 -5
  260. package/src/screens/SmartIr/__test__/SelectBrand.test.js +2 -2
  261. package/src/screens/SmartIr/__test__/SelectDeviceType.test.js +2 -2
  262. package/src/screens/SmartIr/__test__/SmartIr.test.js +2 -2
  263. package/src/screens/SubUnit/ManageSubUnit.js +4 -4
  264. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +9 -28
  265. package/src/screens/TDSGuide/index.js +1 -1
  266. package/src/screens/Template/GatewayList.js +4 -1
  267. package/src/screens/Template/__test__/detail.test.js +24 -22
  268. package/src/screens/Template/detail.js +1 -0
  269. package/src/screens/UVIndexGuide/index.js +2 -2
  270. package/src/screens/Unit/Detail.js +6 -5
  271. package/src/screens/Unit/SelectAddToFavorites.js +1 -1
  272. package/src/screens/Unit/__test__/ChooseLocation.test.js +8 -13
  273. package/src/screens/Unit/__test__/Detail.test.js +10 -14
  274. package/src/screens/Unit/__test__/SelectAddToFavorites.test.js +1 -1
  275. package/src/screens/Unit/__test__/SmartAccount.test.js +8 -14
  276. package/src/screens/Unit/components/__test__/Header.test.js +4 -4
  277. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +1 -1
  278. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +14 -6
  279. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +1 -1
  280. package/src/screens/UnitSummary/components/Temperature/index.js +2 -2
  281. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +4 -0
  282. package/src/screens/UnitSummary/components/UvIndex/index.js +2 -2
  283. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +6 -11
  284. package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -2
  285. package/src/screens/UnitSummary/components/__test__/TotalPowerBox.test.js +1 -1
  286. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +1 -1
  287. package/src/screens/UnitSummary/components/__test__/index.test.js +2 -2
  288. package/src/screens/WaterQualityGuide/index.js +10 -5
  289. package/src/utils/Apis/axios.js +3 -0
  290. package/src/utils/I18n/translations/en.json +24 -18
  291. package/src/utils/I18n/translations/vi.json +22 -18
  292. package/src/utils/Route/index.js +9 -3
  293. package/src/utils/Utils.js +29 -0
  294. package/src/utils/__test__/Utils.test.js +6 -0
  295. package/src/commons/ActionGroup/CurtainButtonTemplate.js +0 -130
  296. package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +0 -109
  297. package/src/commons/Auth/SocialButton.js +0 -54
  298. package/src/commons/Auth/__test__/SocialButton.test.js +0 -44
  299. package/src/commons/Sharing/__test__/StationDevicePermission.test.js +0 -85
  300. package/src/hooks/__test__/useInitDeepLink.test.js +0 -28
  301. package/src/hooks/useInitDeepLink.js +0 -25
  302. package/src/screens/AddNewAction/SelectAction.js +0 -570
  303. package/src/screens/AddNewAction/SelectSensorDevices.js +0 -236
  304. package/src/screens/AddNewAction/SetupSensor.js +0 -263
  305. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +0 -181
  306. package/src/screens/AddNewAction/__test__/SetupSensor.test.js +0 -114
  307. package/src/screens/AddNewOneTap/index.js +0 -147
  308. package/src/screens/ScriptDetail/hooks/index.js +0 -136
  309. package/src/screens/ScriptDetail/index.js +0 -525
  310. package/src/screens/SetSchedule/index.js +0 -200
  311. /package/src/screens/{AddNewAction → Automate/AddNewAction}/Components/index.js +0 -0
  312. /package/src/screens/{AddNewAction → Automate/AddNewAction}/__test__/LoadingSelectAction.test.js +0 -0
@@ -487,25 +487,6 @@ describe('Test ActionGroup', () => {
487
487
  expect(options).toHaveLength(actionGroup.configuration.options.length);
488
488
  });
489
489
 
490
- it('render CurtainButtonTemplate', async () => {
491
- // todo Bang remove
492
- Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
493
- const actionGroup = {
494
- template: 'curtain_action_template',
495
- title: 'Timer',
496
- configuration: {},
497
- };
498
- const mockDoAction = jest.fn();
499
- await act(async () => {
500
- wrapper = renderer.create(
501
- wrapComponent(actionGroup, mockDoAction, sensor)
502
- );
503
- });
504
- const instance = wrapper.root;
505
- const texts = instance.findAllByType(TouchableOpacity);
506
- expect(texts).toHaveLength(3);
507
- });
508
-
509
490
  it('render SmartTiviActionTemplate', async () => {
510
491
  Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
511
492
  const actionGroup = {
@@ -7,7 +7,6 @@ import NumberUpDownActionTemplate from './NumberUpDownActionTemplate';
7
7
  import OptionsDropdownActionTemplate from './OptionsDropdownActionTemplate';
8
8
  import OnOffTemplate from './OnOffTemplate';
9
9
  import TimerActionTemplate from './TimerActionTemplate';
10
- import CurtainButtonTemplate from './CurtainButtonTemplate';
11
10
  import SmartTiviActionTemplate from './SmartTiviActionTemplate/SmartTiviActionTemplate';
12
11
  import ColorPickerTemplate from './ColorPickerTemplate';
13
12
  import SliderRangeTemplate from './SliderRangeTemplate';
@@ -37,8 +36,6 @@ export const getActionComponent = (template) => {
37
36
  return OptionsDropdownActionTemplate;
38
37
  case 'TimerActionTemplate':
39
38
  return TimerActionTemplate;
40
- case 'curtain_action_template':
41
- return CurtainButtonTemplate;
42
39
  case 'SmartTiviActionTemplate':
43
40
  return SmartTiviActionTemplate;
44
41
  case 'color_picker_template':
@@ -1,4 +1,4 @@
1
- import React, { memo, useCallback } from 'react';
1
+ import React, { useCallback } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import Text from '../Text';
4
4
  import styles from './CurtainActionStyles';
@@ -37,19 +37,19 @@ const CurtainAction = ({ configuration, onPress, template }) => {
37
37
  return (
38
38
  <>
39
39
  <TouchableOpacity onPress={onPressActionClose}>
40
- <Text type="H4" style={styles.textwithline}>
40
+ <Text type="H4" style={styles.textWithLine}>
41
41
  {text1}
42
42
  </Text>
43
43
  </TouchableOpacity>
44
44
 
45
45
  <TouchableOpacity onPress={onPressActionStop}>
46
- <Text type="H4" style={styles.textwithline}>
46
+ <Text type="H4" style={styles.textWithLine}>
47
47
  {text2}
48
48
  </Text>
49
49
  </TouchableOpacity>
50
50
 
51
51
  <TouchableOpacity onPress={onPressActionOpen}>
52
- <Text type="H4" style={styles.textwithline}>
52
+ <Text type="H4" style={styles.textWithLine}>
53
53
  {text3}
54
54
  </Text>
55
55
  </TouchableOpacity>
@@ -57,4 +57,4 @@ const CurtainAction = ({ configuration, onPress, template }) => {
57
57
  );
58
58
  };
59
59
 
60
- export default memo(CurtainAction);
60
+ export default CurtainAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -1,4 +1,4 @@
1
- import React, { memo, useCallback } from 'react';
1
+ import React, { useCallback } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import AccessibilityLabel from '../../configs/AccessibilityLabel';
4
4
  import Text from '../Text';
@@ -33,7 +33,7 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
33
33
  <TouchableOpacity onPress={onPressActionOn}>
34
34
  <Text
35
35
  type="H4"
36
- style={styles.textwithline}
36
+ style={styles.textWithLine}
37
37
  accessibilityLabel={AccessibilityLabel.ON_OFF_BUTTON_ACTION_TITLE}
38
38
  >
39
39
  {title} {text_on}
@@ -42,7 +42,7 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
42
42
  <TouchableOpacity onPress={onPressActionOff}>
43
43
  <Text
44
44
  type="H4"
45
- style={styles.textwithline}
45
+ style={styles.textWithLine}
46
46
  accessibilityLabel={AccessibilityLabel.ON_OFF_BUTTON_ACTION_TITLE}
47
47
  >
48
48
  {title} {text_off}
@@ -52,4 +52,4 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
52
52
  );
53
53
  };
54
54
 
55
- export default memo(OnOffButtonAction);
55
+ export default OnOffButtonAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -1,4 +1,4 @@
1
- import React, { memo } from 'react';
1
+ import React from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import Text from '../Text';
4
4
  import { useTranslations } from '../../hooks/Common/useTranslations';
@@ -36,12 +36,12 @@ const OnOffSimpleAction = ({ configuration, onPress, template }) => {
36
36
  accessibilityLabel={AccessibilityLabel.ON_OFF_SIMPLE_ACTION_ON}
37
37
  onPress={onPressActionOn}
38
38
  >
39
- <Text type="H4" style={styles.textwithline}>
39
+ <Text type="H4" style={styles.textWithLine}>
40
40
  {t('text_on')}
41
41
  </Text>
42
42
  </TouchableOpacity>
43
43
  <TouchableOpacity onPress={onPressActionOff}>
44
- <Text type="H4" style={styles.textwithline}>
44
+ <Text type="H4" style={styles.textWithLine}>
45
45
  {t('text_off')}
46
46
  </Text>
47
47
  </TouchableOpacity>
@@ -49,4 +49,4 @@ const OnOffSimpleAction = ({ configuration, onPress, template }) => {
49
49
  );
50
50
  };
51
51
 
52
- export default memo(OnOffSimpleAction);
52
+ export default OnOffSimpleAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -1,4 +1,4 @@
1
- import React, { memo, useCallback } from 'react';
1
+ import React, { useCallback } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import Text from '../Text';
4
4
  import styles from './OnOffSmartLockActionStyles';
@@ -31,13 +31,13 @@ const OnOffSmartLockAction = ({ configuration, onPress, template }) => {
31
31
  return (
32
32
  <>
33
33
  <TouchableOpacity onPress={onPressActionClose}>
34
- <Text type="H4" style={styles.textwithline}>
34
+ <Text type="H4" style={styles.textWithLine}>
35
35
  {text_off}
36
36
  </Text>
37
37
  </TouchableOpacity>
38
38
 
39
39
  <TouchableOpacity onPress={onPressActionOpen}>
40
- <Text type="H4" style={styles.textwithline}>
40
+ <Text type="H4" style={styles.textWithLine}>
41
41
  {text_on}
42
42
  </Text>
43
43
  </TouchableOpacity>
@@ -45,4 +45,4 @@ const OnOffSmartLockAction = ({ configuration, onPress, template }) => {
45
45
  );
46
46
  };
47
47
 
48
- export default memo(OnOffSmartLockAction);
48
+ export default OnOffSmartLockAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -1,4 +1,4 @@
1
- import React, { memo } from 'react';
1
+ import React from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import Text from '../Text';
4
4
  import styles from './OneButtonActionStyles';
@@ -17,11 +17,11 @@ const OneButtonAction = ({ configuration, onPress, template }) => {
17
17
  return (
18
18
  <>
19
19
  <TouchableOpacity onPress={onPressAction}>
20
- <Text type="H4" style={styles.textwithline}>
20
+ <Text type="H4" style={styles.textWithLine}>
21
21
  {text}
22
22
  </Text>
23
23
  </TouchableOpacity>
24
24
  </>
25
25
  );
26
26
  };
27
- export default memo(OneButtonAction);
27
+ export default OneButtonAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -1,4 +1,4 @@
1
- import React, { memo, useCallback } from 'react';
1
+ import React, { useCallback } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import Text from '../Text';
4
4
  import styles from './ThreeButtonActionStyles';
@@ -35,19 +35,19 @@ const ThreeButtonAction = ({ configuration, onPress, template }) => {
35
35
  return (
36
36
  <>
37
37
  <TouchableOpacity onPress={onPressAction1}>
38
- <Text type="H4" style={styles.textwithline}>
38
+ <Text type="H4" style={styles.textWithLine}>
39
39
  {text1}
40
40
  </Text>
41
41
  </TouchableOpacity>
42
42
 
43
43
  <TouchableOpacity onPress={onPressAction2}>
44
- <Text type="H4" style={styles.textwithline}>
44
+ <Text type="H4" style={styles.textWithLine}>
45
45
  {text2}
46
46
  </Text>
47
47
  </TouchableOpacity>
48
48
 
49
49
  <TouchableOpacity onPress={onPressAction3}>
50
- <Text type="H4" style={styles.textwithline}>
50
+ <Text type="H4" style={styles.textWithLine}>
51
51
  {text3}
52
52
  </Text>
53
53
  </TouchableOpacity>
@@ -55,4 +55,4 @@ const ThreeButtonAction = ({ configuration, onPress, template }) => {
55
55
  );
56
56
  };
57
57
 
58
- export default memo(ThreeButtonAction);
58
+ export default ThreeButtonAction;
@@ -2,7 +2,7 @@ import { StyleSheet } from 'react-native';
2
2
  import { Colors } from '../../configs';
3
3
 
4
4
  export default StyleSheet.create({
5
- textwithline: {
5
+ textWithLine: {
6
6
  paddingBottom: 16,
7
7
  paddingTop: 16,
8
8
  borderBottomWidth: 1,
@@ -26,7 +26,7 @@ describe('Test CurtainAction', () => {
26
26
  };
27
27
  const mockFuntion = jest.fn();
28
28
  await act(async () => {
29
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
29
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
30
30
  });
31
31
  const instance = tree.root;
32
32
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -31,7 +31,7 @@ describe('Test OnOffButtonAction', () => {
31
31
  };
32
32
  const mockFuntion = jest.fn();
33
33
  await act(async () => {
34
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
34
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
35
35
  });
36
36
  const instance = tree.root;
37
37
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -19,7 +19,7 @@ describe('Test OnOffSimpleAction', () => {
19
19
  const configuration = {};
20
20
  const mockFuntion = jest.fn();
21
21
  await act(async () => {
22
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
22
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
23
23
  });
24
24
  const instance = tree.root;
25
25
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -24,7 +24,7 @@ describe('Test OnOffSmartLockAction', () => {
24
24
  };
25
25
  const mockFuntion = jest.fn();
26
26
  await act(async () => {
27
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
27
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
28
28
  });
29
29
  const instance = tree.root;
30
30
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -19,7 +19,7 @@ describe('Test OneButtonAction', () => {
19
19
  const configuration = {};
20
20
  const mockFuntion = jest.fn();
21
21
  await act(async () => {
22
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
22
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
23
23
  });
24
24
  const instance = tree.root;
25
25
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -19,7 +19,7 @@ describe('Test ThreeButtonAction', () => {
19
19
  const configuration = {};
20
20
  const mockFuntion = jest.fn();
21
21
  await act(async () => {
22
- tree = renderer.create(wrapComponent(configuration, mockFuntion));
22
+ tree = await renderer.create(wrapComponent(configuration, mockFuntion));
23
23
  });
24
24
  const instance = tree.root;
25
25
  const touchOpacity = instance.findAllByType(TouchableOpacity);
@@ -10,84 +10,35 @@ import ThreeButtonAction from '../ThreeButtonAction';
10
10
 
11
11
  const mockOnSelectAction = jest.fn();
12
12
 
13
- const wrapComponent = (data) => (
13
+ const wrapComponent = (item) => (
14
14
  <SCProvider initState={mockSCStore({})}>
15
- <ActionTemplate data={data} onSelectAction={mockOnSelectAction} />
15
+ <ActionTemplate item={item} onSelectAction={mockOnSelectAction} />
16
16
  </SCProvider>
17
17
  );
18
18
 
19
19
  describe('Test ActionTemplate', () => {
20
20
  let tree;
21
- let data = [
22
- {
23
- title: '',
24
- template: 'three_button_action_template',
25
- configuration: {
26
- action1: '94ae262d-46e3-42ff-9d10-516831ecc830',
27
- action2: '94ae262d-46e3-42ff-9d10-516831ecc830',
28
- action3: '94ae262d-46e3-42ff-9d10-516831ecc830',
29
- icon1: 'up',
30
- icon2: 'stop',
31
- icon3: 'down',
32
- text1: 'OPEN',
33
- text2: 'STOP',
34
- text3: 'CLOSE',
35
- text_lock: 'Door lock',
36
- is_display_lock: true,
37
- },
38
- },
39
- {
40
- title: '',
41
- template: 'on_off_button_action_template',
42
- configuration: {
43
- action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
44
- action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
45
- text_on: 'On',
46
- text_off: 'Off',
47
- },
48
- },
49
- {
50
- title: '',
51
- template: 'one_button_action_template',
52
- configuration: {
53
- action: '94ae262d-46e3-42ff-9d10-516831ecc830',
54
- text: 'One',
55
- },
21
+ let item = {
22
+ title: '',
23
+ template: 'three_button_action_template',
24
+ configuration: {
25
+ action1: '94ae262d-46e3-42ff-9d10-516831ecc830',
26
+ action2: '94ae262d-46e3-42ff-9d10-516831ecc830',
27
+ action3: '94ae262d-46e3-42ff-9d10-516831ecc830',
28
+ icon1: 'up',
29
+ icon2: 'stop',
30
+ icon3: 'down',
31
+ text1: 'OPEN',
32
+ text2: 'STOP',
33
+ text3: 'CLOSE',
34
+ text_lock: 'Door lock',
35
+ is_display_lock: true,
56
36
  },
57
- {
58
- title: '',
59
- template: 'OnOffSimpleActionTemplate',
60
- configuration: {
61
- action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
62
- action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
63
- },
64
- },
65
- {
66
- title: '',
67
- template: 'curtain_action_template',
68
- configuration: {
69
- open_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
70
- close_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
71
- stop_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
72
- text1: 'One',
73
- text2: 'Two',
74
- text3: 'Three',
75
- },
76
- },
77
- {
78
- title: '',
79
- template: 'OnOffSmartLockActionTemplate',
80
- configuration: {
81
- action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
82
- action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
83
- text_on: 'on',
84
- text_off: 'off',
85
- },
86
- },
87
- ];
37
+ };
38
+
88
39
  it('test onPress SelectActionCard', async () => {
89
40
  await act(async () => {
90
- tree = renderer.create(wrapComponent(data));
41
+ tree = await renderer.create(wrapComponent(item));
91
42
  });
92
43
  const instance = tree.root;
93
44
  const selectActionCard = instance.findByType(SelectActionCard);
@@ -100,7 +51,7 @@ describe('Test ActionTemplate', () => {
100
51
 
101
52
  it('test onPressSelectAction', async () => {
102
53
  await act(async () => {
103
- tree = renderer.create(wrapComponent(data));
54
+ tree = await renderer.create(wrapComponent(item));
104
55
  });
105
56
  const instance = tree.root;
106
57
 
@@ -13,7 +13,7 @@ import CurtainAction from './CurtainAction';
13
13
  import OnOffSmartLockAction from './OnOffSmartLockAction';
14
14
  import { DEVICE_TYPE } from '../../configs/Constants';
15
15
 
16
- const ActionTemplate = memo(({ device, data, onSelectAction }) => {
16
+ const ActionTemplate = memo(({ device, item, onSelectAction }) => {
17
17
  const t = useTranslations();
18
18
  const [visible, setVisible] = useState(false);
19
19
  const onClose = () => setVisible(false);
@@ -47,66 +47,30 @@ const ActionTemplate = memo(({ device, data, onSelectAction }) => {
47
47
  );
48
48
 
49
49
  const renderAction = useMemo(() => {
50
- return data.map((item, index) => {
51
- switch (item.template) {
52
- case 'on_off_button_action_template':
53
- return (
54
- <OnOffButtonAction
55
- {...item}
56
- onPress={onPressSelectAction}
57
- key={index}
58
- />
59
- );
60
- case 'one_button_action_template':
61
- return (
62
- <OneButtonAction
63
- {...item}
64
- onPress={onPressSelectAction}
65
- key={index}
66
- />
67
- );
68
- case 'three_button_action_template':
69
- return (
70
- <ThreeButtonAction
71
- {...item}
72
- onPress={onPressSelectAction}
73
- key={index}
74
- />
75
- );
76
- case 'OnOffSimpleActionTemplate':
77
- return (
78
- <OnOffSimpleAction
79
- {...item}
80
- onPress={onPressSelectAction}
81
- key={index}
82
- />
83
- );
84
- case 'curtain_action_template':
85
- return (
86
- <CurtainAction
87
- {...item}
88
- onPress={onPressSelectAction}
89
- key={index}
90
- />
91
- );
92
- case 'OnOffSmartLockActionTemplate':
93
- return (
94
- <OnOffSmartLockAction
95
- {...item}
96
- onPress={onPressSelectAction}
97
- key={index}
98
- />
99
- );
100
- }
101
- });
102
- }, [data, onPressSelectAction]);
50
+ switch (item.template) {
51
+ case 'on_off_button_action_template':
52
+ return <OnOffButtonAction {...item} onPress={onPressSelectAction} />;
53
+ case 'one_button_action_template':
54
+ return <OneButtonAction {...item} onPress={onPressSelectAction} />;
55
+ case 'three_button_action_template':
56
+ return <ThreeButtonAction {...item} onPress={onPressSelectAction} />;
57
+ case 'OnOffSimpleActionTemplate':
58
+ return <OnOffSimpleAction {...item} onPress={onPressSelectAction} />;
59
+ case 'curtain_action_template':
60
+ return <CurtainAction {...item} onPress={onPressSelectAction} />;
61
+ case 'OnOffSmartLockActionTemplate':
62
+ return <OnOffSmartLockAction {...item} onPress={onPressSelectAction} />;
63
+ default:
64
+ return null;
65
+ }
66
+ }, [item, onPressSelectAction]);
103
67
 
104
68
  return (
105
69
  <>
106
70
  <SelectActionCard
107
71
  onPress={onPress}
108
72
  action={actionName}
109
- title={t(data[0]?.title === 'Power' ? 'power' : 'action')}
73
+ title={t(item?.title === 'Power' ? 'power' : 'action')}
110
74
  />
111
75
 
112
76
  <ModalCustom
@@ -7,7 +7,7 @@ describe('Test Alert', () => {
7
7
  let tree;
8
8
  it('create Alert', async () => {
9
9
  await act(async () => {
10
- tree = renderer.create(<Alert />);
10
+ tree = await renderer.create(<Alert />);
11
11
  });
12
12
  const instance = tree.root;
13
13
  const Modals = instance.findAllByType(Modal);
@@ -7,7 +7,7 @@ const AccountList = ({ accounts }) => {
7
7
  return (
8
8
  <ScrollView scrollIndicatorInsets={{ right: 1 }}>
9
9
  {accounts.map((account) => (
10
- <AccountItem key={account.id || account.name} account={account} />
10
+ <AccountItem key={account.id} account={account} />
11
11
  ))}
12
12
  </ScrollView>
13
13
  );
@@ -10,39 +10,37 @@ describe('Test OtpInputList', () => {
10
10
  let tree;
11
11
 
12
12
  for (const code of list_code) {
13
- test(`create OtpInputList ${code} onfinishInputCode is func`, async () => {
13
+ it(`create OtpInputList ${code} onfinishInputCode is func`, async () => {
14
14
  await act(async () => {
15
- tree = renderer.create(<OtpInputList onfinishInputCode={mockFunc} />);
15
+ tree = await renderer.create(
16
+ <OtpInputList onfinishInputCode={mockFunc} />
17
+ );
16
18
  });
17
19
 
18
20
  const instance = tree.root;
19
21
  const textInputs = instance.findAllByType(TextInput);
20
- await Promise.all(
21
- textInputs.map(async (el, index) => {
22
- await act(async () => {
23
- el.props.onFocus(code); // TODO check onFocus(code)
24
- el.props.onChangeText('1');
25
- });
26
- })
27
- );
22
+ for (let index = 0; index < textInputs.length; index++) {
23
+ await act(async () => {
24
+ textInputs[index].props.onFocus(code);
25
+ textInputs[index].props.onChangeText('1');
26
+ });
27
+ }
28
28
  expect(mockFunc).toHaveBeenCalledWith('111111');
29
29
  });
30
30
  }
31
31
 
32
32
  it('create OtpInputList not parameter', async () => {
33
33
  await act(async () => {
34
- tree = renderer.create(<OtpInputList />);
34
+ tree = await renderer.create(<OtpInputList />);
35
35
  });
36
36
  const instance = tree.root;
37
37
  const textInputs = instance.findAllByType(TextInput);
38
- await Promise.all(
39
- textInputs.map(async (el, index) => {
40
- await act(async () => {
41
- el.props.onFocus();
42
- el.props.onChangeText('');
43
- });
44
- })
45
- );
38
+ for (let index = 0; index < textInputs.length; index++) {
39
+ await act(async () => {
40
+ textInputs[index].props.onFocus();
41
+ textInputs[index].props.onChangeText('1');
42
+ });
43
+ }
46
44
  expect(mockFunc).toHaveBeenCalledWith('111111');
47
45
  });
48
46
  });
@@ -5,20 +5,26 @@ import { Colors } from '../../configs';
5
5
  import styles from './ItemAutomateStyles';
6
6
  import { AUTOMATES } from '../../configs/Constants';
7
7
  import { useTranslations } from '../../hooks/Common/useTranslations';
8
+ import { generateAutomationConditionText } from '../../screens/Automate/ScriptDetail/utils';
9
+ import { useGetEvaluateValue } from '../../screens/Device/hooks/useEvaluateValue';
8
10
 
9
11
  const ItemAutomate = ({
10
- type,
12
+ automate,
11
13
  isSelected = false,
12
14
  disabledOnPress = false,
13
- textCondition,
14
15
  index,
15
16
  setSelectedIndex,
16
17
  onPress,
17
18
  }) => {
18
19
  const t = useTranslations();
19
- const item = AUTOMATES[type];
20
- const isItemOneTap = AUTOMATES[type] === AUTOMATES.one_tap;
20
+ const item = AUTOMATES[automate?.type];
21
+ const isItemOneTap = AUTOMATES[automate?.type] === AUTOMATES.one_tap;
21
22
  const Icon = item?.icon;
23
+ const valueEvaluation = useGetEvaluateValue(automate?.config);
24
+
25
+ const textCondition = useMemo(() => {
26
+ return generateAutomationConditionText(automate, valueEvaluation, t);
27
+ }, [automate, t, valueEvaluation]);
22
28
 
23
29
  const renderText = useMemo(() => {
24
30
  if (textCondition) {