@eohjsc/react-native-smart-city 0.3.29 → 0.3.32

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 (404) hide show
  1. package/package.json +7 -5
  2. package/src/Images/DevMode/close.png +0 -0
  3. package/src/Images/DevMode/close@2x.png +0 -0
  4. package/src/Images/DevMode/close@3x.png +0 -0
  5. package/src/Images/DevMode/plus.png +0 -0
  6. package/src/Images/DevMode/plus@2x.png +0 -0
  7. package/src/Images/DevMode/plus@3x.png +0 -0
  8. package/src/Images/DevMode/remove_circle.png +0 -0
  9. package/src/Images/DevMode/remove_circle@2x.png +0 -0
  10. package/src/Images/DevMode/remove_circle@3x.png +0 -0
  11. package/src/commons/Action/ItemQuickAction.js +2 -2
  12. package/src/commons/Action/__test__/ItemQuickAction.test.js +17 -9
  13. package/src/commons/ActionGroup/ColorPickerTemplate.js +36 -17
  14. package/src/commons/ActionGroup/CurtainButtonTemplate.js +6 -6
  15. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +18 -13
  16. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/ButtonWrapper.js +5 -2
  17. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +10 -4
  18. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/index.js +4 -4
  19. package/src/commons/ActionGroup/OnOffSmartLock/OnOffSmartLock.js +38 -45
  20. package/src/commons/ActionGroup/OnOffSmartLock/OnOffSmartLockStyle.js +1 -0
  21. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/ItemPasscode.js +1 -1
  22. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +2 -2
  23. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +2 -2
  24. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/ButtonWrapper.js +2 -2
  25. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +12 -6
  26. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/index.js +8 -4
  27. package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +9 -10
  28. package/src/commons/ActionGroup/OnOffTemplate/index.js +2 -2
  29. package/src/commons/ActionGroup/OneBigButtonTemplate.js +5 -5
  30. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +38 -22
  31. package/src/commons/ActionGroup/SliderRangeTemplate.js +24 -16
  32. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +25 -9
  33. package/src/commons/ActionGroup/SmartTiviActionTemplate/__test__/ControlPlay.test.js +13 -7
  34. package/src/commons/ActionGroup/SmartTiviActionTemplate/__test__/RectangleButton.test.js +9 -5
  35. package/src/commons/ActionGroup/SmartTiviActionTemplate/__test__/SmartTiviActionTemplate.test.js +25 -9
  36. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/CircleButton.js +16 -6
  37. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/ControlPlay.js +10 -4
  38. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/RectangleButton.js +7 -3
  39. package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
  40. package/src/commons/ActionGroup/ThreeButtonTemplate.js +50 -60
  41. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +135 -133
  42. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +7 -7
  43. package/src/commons/ActionGroup/__test__/OnOffSmartLock.test.js +3 -3
  44. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
  45. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +9 -5
  46. package/src/commons/ActionGroup/__test__/index.test.js +7 -5
  47. package/src/commons/ActionGroup/index.js +35 -10
  48. package/src/commons/AlertAction/index.js +2 -2
  49. package/src/commons/Auth/AccountItem.js +9 -3
  50. package/src/commons/Auth/__test__/AccountItem.test.js +6 -3
  51. package/src/commons/Automate/ItemAutomate.js +13 -3
  52. package/src/commons/BackDefault/index.js +2 -2
  53. package/src/commons/BottomButtonView/index.js +4 -4
  54. package/src/commons/Button/index.js +2 -2
  55. package/src/commons/ButtonPopup/index.js +3 -3
  56. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +3 -2
  57. package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +4 -2
  58. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +6 -3
  59. package/src/commons/Dashboard/MyUnit/index.js +5 -3
  60. package/src/commons/DevMode/CardDevMode.js +42 -0
  61. package/src/commons/DevMode/EmptyComponent.js +18 -0
  62. package/src/commons/DevMode/Item.js +21 -0
  63. package/src/commons/DevMode/Styles/CardStyles.js +40 -0
  64. package/src/commons/DevMode/Styles/EmptyComponentStyles.js +15 -0
  65. package/src/commons/DevMode/Styles/ItemStyles.js +27 -0
  66. package/src/commons/DevMode/Styles/TextWithLabelStyles.js +36 -0
  67. package/src/commons/DevMode/TextWithLabel.js +30 -0
  68. package/src/commons/DevMode/index.js +5 -1
  69. package/src/commons/Device/ConnectedViewHeader.js +2 -2
  70. package/src/commons/Device/DeviceAlertStatus.js +3 -3
  71. package/src/commons/Device/DisconnectedView.js +2 -2
  72. package/src/commons/Device/Emergency/EmergencyButton.js +2 -2
  73. package/src/commons/Device/Emergency/EmergencyDetail.js +1 -1
  74. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +3 -2
  75. package/src/commons/Device/FlatListItems.js +2 -2
  76. package/src/commons/Device/ItemAddNew/index.js +10 -11
  77. package/src/commons/Device/ItemDevice.js +27 -20
  78. package/src/commons/Device/PMSensor/PMSensorIndicatior.js +1 -1
  79. package/src/commons/Device/RainningSensor/CurrentRainSensor.js +1 -1
  80. package/src/commons/Device/SensorConnectedStatus.js +5 -2
  81. package/src/commons/Device/WindDirection/Compass/index.js +6 -3
  82. package/src/commons/Device/WindSpeed/Anemometer/index.js +1 -1
  83. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +8 -4
  84. package/src/commons/Device/__test__/FlatListItems.test.js +3 -2
  85. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +4 -2
  86. package/src/commons/Explore/ActivityIndicator/index.js +5 -2
  87. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +3 -3
  88. package/src/commons/Explore/SearchBox/index.js +2 -2
  89. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +4 -4
  90. package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +11 -8
  91. package/src/commons/FieldTemplate/ChooseUserField/index.js +2 -2
  92. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +3 -2
  93. package/src/commons/FieldTemplate/PasscodeField/index.js +2 -2
  94. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +12 -7
  95. package/src/commons/Form/TextInput.js +2 -2
  96. package/src/commons/Form/TextInputPassword.js +2 -2
  97. package/src/commons/GroupCheckBox/__test__/GroupCheckBox.test.js +5 -3
  98. package/src/commons/GroupCheckBox/index.js +2 -2
  99. package/src/commons/Header/HeaderCustom.js +8 -2
  100. package/src/commons/HeaderAni/index.js +2 -3
  101. package/src/commons/MediaPlayerDetail/index.js +2 -2
  102. package/src/commons/MenuActionList/index.js +2 -2
  103. package/src/commons/MenuActionMore/index.js +6 -5
  104. package/src/commons/NavBar/index.js +4 -4
  105. package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +11 -5
  106. package/src/commons/OneTapTemplate/OptionsDropdownActionTemplate.js +7 -3
  107. package/src/commons/OneTapTemplate/StatesGridActionTemplate.js +4 -2
  108. package/src/commons/OneTapTemplate/__test__/NumberUpDownActionTemplate.test.js +11 -8
  109. package/src/commons/OneTapTemplate/__test__/OptionsDropdownActionTemplate.test.js +9 -5
  110. package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +5 -3
  111. package/src/commons/Popover/index.js +2 -12
  112. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +5 -3
  113. package/src/commons/PreventAccess/index.js +3 -3
  114. package/src/commons/{Connecting → Processing}/__test__/Connecting.test.js +5 -4
  115. package/src/commons/Processing/index.js +93 -0
  116. package/src/commons/{Connecting → Processing}/styles.js +9 -1
  117. package/src/commons/SelectGateway/index.js +105 -0
  118. package/src/commons/SelectGateway/styles.js +55 -0
  119. package/src/commons/SelectSubUnit/__test__/SelectSubUnit.test.js +106 -0
  120. package/src/commons/SelectSubUnit/index.js +124 -0
  121. package/src/commons/SelectSubUnit/styles.js +55 -0
  122. package/src/commons/SelectUnit/__test__/SelectUnit.test.js +120 -0
  123. package/src/commons/SelectUnit/index.js +106 -0
  124. package/src/commons/SelectUnit/styles.js +54 -0
  125. package/src/commons/Sharing/WrapHeaderScrollable.js +6 -4
  126. package/src/commons/SubUnit/OneTap/ItemOneTap.js +7 -4
  127. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +25 -10
  128. package/src/commons/SubUnit/OneTap/index.js +9 -4
  129. package/src/commons/SubUnit/ShortDetail.js +11 -29
  130. package/src/commons/SubUnit/__test__/ShortDetail.test.js +15 -10
  131. package/src/commons/SummaryItem/index.js +2 -2
  132. package/src/commons/Unit/HeaderUnit/index.js +4 -5
  133. package/src/commons/Unit/SharedUnit.js +10 -8
  134. package/src/commons/Unit/__test__/HeaderUnit.test.js +13 -5
  135. package/src/commons/Unit/__test__/SharedUnit.test.js +30 -11
  136. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +13 -8
  137. package/src/commons/UnitSummary/AirQuality/index.js +7 -3
  138. package/src/commons/UnitSummary/TotalPowerBox.js +2 -2
  139. package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -2
  140. package/src/commons/UnitSummary/__test__/TotalPowerBox.test.js +3 -2
  141. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +4 -2
  142. package/src/commons/ViewButtonBottom/index.js +4 -4
  143. package/src/commons/WheelDateTimePicker/index.js +5 -3
  144. package/src/commons/WrapParallaxScrollView/index.js +2 -1
  145. package/src/configs/API.js +12 -14
  146. package/src/configs/AccessibilityLabel.js +608 -0
  147. package/src/configs/Colors.js +4 -0
  148. package/src/configs/Constants.js +1 -593
  149. package/src/configs/Images.js +3 -0
  150. package/src/context/actionType.ts +19 -3
  151. package/src/context/mockStore.ts +18 -3
  152. package/src/context/reducer.ts +66 -9
  153. package/src/hoc/withRemoteControl.js +1 -0
  154. package/src/hooks/Common/index.js +2 -2
  155. package/src/hooks/Common/useDevicesStatus.js +1 -1
  156. package/src/hooks/Common/{useGGHomeDeviceConnected.js → useHomeAssistantDeviceConnected.js} +3 -3
  157. package/src/hooks/Common/usePopover.js +6 -1
  158. package/src/hooks/IoT/__test__/{useGGHomeConnection.test.js → useHomeAssistantConnection.test.js} +18 -18
  159. package/src/hooks/IoT/__test__/useRemoteControl.test.js +17 -12
  160. package/src/hooks/IoT/index.js +2 -2
  161. package/src/hooks/IoT/useHomeAssistantConnection.js +91 -0
  162. package/src/hooks/IoT/useRemoteControl.js +6 -6
  163. package/src/hooks/IoT/useValueEvaluation.js +10 -19
  164. package/src/iot/RemoteControl/{GoogleHome.js → HomeAssistant.js} +27 -23
  165. package/src/iot/RemoteControl/LG.js +2 -1
  166. package/src/iot/RemoteControl/__test__/{GoogleHome.test.js → HomeAssistant.test.js} +30 -30
  167. package/src/navigations/AddDeviceStack.js +0 -14
  168. package/src/navigations/AddGatewayStack.js +51 -21
  169. package/src/navigations/Main.js +28 -4
  170. package/src/navigations/SmartIrStack.js +3 -3
  171. package/src/navigations/UnitStack.js +5 -8
  172. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +5 -3
  173. package/src/screens/AQIGuide/index.js +5 -3
  174. package/src/screens/ActivityLog/FilterPopup.js +2 -2
  175. package/src/screens/ActivityLog/__test__/FilterPopup.test.js +2 -2
  176. package/src/screens/ActivityLog/__test__/index.test.js +3 -2
  177. package/src/screens/ActivityLog/index.js +3 -3
  178. package/src/screens/AddCommon/SelectSubUnit.js +44 -191
  179. package/src/screens/AddCommon/SelectUnit.js +51 -204
  180. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +7 -50
  181. package/src/screens/AddCommon/__test__/SelectUnit.test.js +28 -26
  182. package/src/screens/AddLocationMaps/__test__/index.test.js +13 -7
  183. package/src/screens/AddLocationMaps/index.js +3 -3
  184. package/src/screens/AddNewAction/Device/index.js +5 -1
  185. package/src/screens/AddNewAction/SelectAction.js +36 -20
  186. package/src/screens/AddNewAction/SelectSensorDevices.js +3 -3
  187. package/src/screens/AddNewAction/__test__/SelectAction.test.js +3 -2
  188. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +8 -3
  189. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +11 -7
  190. package/src/screens/AddNewAutoSmart/index.js +11 -12
  191. package/src/screens/AddNewDevice/ConnectingDevices.js +1 -1
  192. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +7 -4
  193. package/src/screens/AddNewDevice/index.js +4 -4
  194. package/src/screens/AddNewGateway/ConnectingDevice.js +40 -0
  195. package/src/screens/AddNewGateway/ConnectingModbusDevice.js +61 -0
  196. package/src/screens/AddNewGateway/ConnectingWifiDevice.js +70 -0
  197. package/src/screens/AddNewGateway/ConnectingZigbeeDevice.js +60 -0
  198. package/src/screens/AddNewGateway/PlugAndPlay/FirstWarning.js +21 -8
  199. package/src/screens/AddNewGateway/PlugAndPlay/__test__/FirstWarning.test.js +23 -4
  200. package/src/screens/AddNewGateway/RenameNewDevices.js +141 -0
  201. package/src/screens/AddNewGateway/RenameNewDevicesStyles.js +75 -0
  202. package/src/screens/AddNewGateway/ScanGatewayQR.js +57 -0
  203. package/src/screens/AddNewGateway/ScanModbusQR.js +53 -0
  204. package/src/screens/AddNewGateway/ScanWifiDeviceQR.js +55 -0
  205. package/src/screens/AddNewGateway/SelectDeviceSubUnit.js +31 -0
  206. package/src/screens/AddNewGateway/SelectDeviceType.js +52 -0
  207. package/src/screens/AddNewGateway/SelectDeviceUnit.js +29 -0
  208. package/src/screens/AddNewGateway/SelectModbusGateway.js +34 -0
  209. package/src/screens/AddNewGateway/SelectZigbeeGateway.js +34 -0
  210. package/src/screens/AddNewGateway/ShareWifiPassword.js +302 -0
  211. package/src/screens/AddNewGateway/ShareWifiPasswordStyles.js +44 -0
  212. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +7 -4
  213. package/src/screens/AddNewGateway/__test__/ConnectingModbusDevice.test.js +63 -0
  214. package/src/screens/AddNewGateway/__test__/{SelectGateway.test.js → ConnectingWifiDevice.test.js} +15 -10
  215. package/src/screens/AddNewGateway/__test__/ConnectingZigbeeDevice.test.js +62 -0
  216. package/src/screens/AddNewGateway/__test__/RenameNewDevices.test.js +191 -0
  217. package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +73 -0
  218. package/src/screens/AddNewGateway/__test__/ScanModbusQR.test.js +75 -0
  219. package/src/screens/AddNewGateway/__test__/ScanWifiDeviceQR.test.js +73 -0
  220. package/src/screens/AddNewGateway/__test__/SelectDeviceSubUnit.test.js +47 -0
  221. package/src/screens/AddNewGateway/__test__/SelectDeviceType.test.js +89 -0
  222. package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +48 -0
  223. package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +77 -0
  224. package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +77 -0
  225. package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +294 -0
  226. package/src/screens/AddNewGateway/hooks/__Tests__/index.test.js +27 -0
  227. package/src/screens/AddNewGateway/index.js +4 -4
  228. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +5 -4
  229. package/src/screens/AddNewOneTap/index.js +4 -4
  230. package/src/screens/Automate/__test__/index.test.js +2 -2
  231. package/src/screens/Automate/index.js +6 -2
  232. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +3 -2
  233. package/src/screens/ConfirmUnitDeletion/index.js +3 -3
  234. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +5 -5
  235. package/src/screens/Device/EditDevice/index.js +3 -3
  236. package/src/screens/Device/__test__/detail.test.js +38 -22
  237. package/src/screens/Device/components/DetailHistoryChart.js +7 -5
  238. package/src/screens/Device/components/SensorConnectStatusViewHeader.js +16 -17
  239. package/src/screens/Device/components/SensorDisplayItem.js +51 -26
  240. package/src/screens/Device/detail.js +65 -38
  241. package/src/screens/Device/hooks/useEvaluateValue.js +0 -2
  242. package/src/screens/Device/hooks/useFavoriteDevice.js +4 -2
  243. package/src/screens/DeviceInfo/__test__/index.test.js +8 -4
  244. package/src/screens/DeviceInfo/index.js +10 -6
  245. package/src/screens/Drawer/index.js +30 -13
  246. package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +11 -7
  247. package/src/screens/EmergencyContacts/EmergencyContactsList.js +1 -1
  248. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +9 -10
  249. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +9 -5
  250. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +7 -3
  251. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +7 -3
  252. package/src/screens/EmergencySetting/__test__/DropDownItem.test.js +3 -2
  253. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  254. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +6 -3
  255. package/src/screens/EnterPassword/index.js +5 -3
  256. package/src/screens/GuestInfo/__test__/index.test.js +18 -12
  257. package/src/screens/GuestInfo/components/AccessScheduleItem.js +2 -2
  258. package/src/screens/GuestInfo/components/AccessScheduleSheet.js +3 -3
  259. package/src/screens/GuestInfo/components/HeaderGuestInfo.js +2 -2
  260. package/src/screens/GuestInfo/components/RecurringDetail.js +4 -4
  261. package/src/screens/GuestInfo/components/TemporaryDetail.js +3 -3
  262. package/src/screens/GuestInfo/index.js +1 -1
  263. package/src/screens/HanetCamera/Detail.js +10 -4
  264. package/src/screens/HanetCamera/ManageAccess.js +4 -4
  265. package/src/screens/HanetCamera/MemberInfo.js +1 -1
  266. package/src/screens/HanetCamera/__test__/Detail.test.js +5 -3
  267. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +10 -4
  268. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +4 -2
  269. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -2
  270. package/src/screens/ManageAccess/index.js +1 -1
  271. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +4 -4
  272. package/src/screens/MoveToAnotherSubUnit/index.js +2 -2
  273. package/src/screens/Notification/__test__/NotificationItem.test.js +6 -30
  274. package/src/screens/Notification/components/NotificationItem.js +3 -19
  275. package/src/screens/PlayBackCamera/__test__/index.test.js +9 -6
  276. package/src/screens/PlayBackCamera/index.js +6 -6
  277. package/src/screens/ScanChipQR/components/QRScan/__test__/QRScan.test.js +1 -1
  278. package/src/screens/ScanChipQR/components/QRScan/index.js +10 -3
  279. package/src/screens/ScriptDetail/__test__/index.test.js +8 -4
  280. package/src/screens/ScriptDetail/index.js +7 -5
  281. package/src/screens/SelectUnit/__test__/index.test.js +4 -3
  282. package/src/screens/SelectUnit/index.js +3 -3
  283. package/src/screens/SetSchedule/index.js +1 -1
  284. package/src/screens/Sharing/Components/SensorItem.js +6 -3
  285. package/src/screens/Sharing/Components/Styles/SensorItemStyles.js +4 -0
  286. package/src/screens/Sharing/Components/Styles/TitleCheckBoxStyles.js +4 -0
  287. package/src/screens/Sharing/Components/TitleCheckBox.js +17 -8
  288. package/src/screens/Sharing/Components/__test__/SensorItem.test.js +4 -2
  289. package/src/screens/Sharing/InfoMemberUnit.js +7 -6
  290. package/src/screens/Sharing/MemberList.js +4 -4
  291. package/src/screens/Sharing/SelectPermission.js +9 -4
  292. package/src/screens/Sharing/SelectUser.js +9 -5
  293. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +3 -2
  294. package/src/screens/Sharing/__test__/SelectUser.test.js +7 -4
  295. package/src/screens/SideMenuDetail/__test__/index.test.js +11 -7
  296. package/src/screens/SideMenuDetail/index.js +2 -2
  297. package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +4 -2
  298. package/src/screens/SmartIr/__test__/SelectDeviceType.test.js +5 -5
  299. package/src/screens/SmartIr/__test__/SmartIr.test.js +14 -6
  300. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +4 -2
  301. package/src/screens/SmartIr/components/{SelectDeviceType.js → SelectIrDeviceType.js} +2 -2
  302. package/src/screens/SmartIr/index.js +1 -1
  303. package/src/screens/SubUnit/AddSubUnit.js +7 -3
  304. package/src/screens/SubUnit/Detail.js +6 -6
  305. package/src/screens/SubUnit/EditSubUnit.js +10 -6
  306. package/src/screens/SubUnit/ManageSubUnit.js +2 -2
  307. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +6 -3
  308. package/src/screens/SubUnit/__test__/Detail.test.js +5 -3
  309. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +9 -5
  310. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +3 -2
  311. package/src/screens/SyncLGDevice/AddLGDevice.js +4 -4
  312. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +7 -4
  313. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +4 -2
  314. package/src/screens/TDSGuide/index.js +2 -2
  315. package/src/screens/Template/EditTemplate.js +152 -0
  316. package/src/screens/Template/GatewayList.js +51 -0
  317. package/src/screens/Template/Information.js +41 -0
  318. package/src/screens/Template/Styles/EditTemplateStyle.js +109 -0
  319. package/src/screens/Template/Styles/GatewayStyles.js +46 -0
  320. package/src/screens/Template/Styles/InformationStyles.js +16 -0
  321. package/src/screens/Template/Styles/detailStyles.js +35 -0
  322. package/src/screens/Template/Styles/indexStyles.js +2 -33
  323. package/src/screens/Template/__test__/EditTemplate.test.js +89 -0
  324. package/src/screens/Template/__test__/GatewayList.test.js +26 -0
  325. package/src/screens/Template/__test__/Information.test.js +16 -0
  326. package/src/screens/Template/__test__/detail.test.js +68 -0
  327. package/src/screens/Template/__test__/index.test.js +26 -1
  328. package/src/screens/Template/detail.js +154 -0
  329. package/src/screens/Template/index.js +38 -32
  330. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +3 -2
  331. package/src/screens/UVIndexGuide/index.js +2 -2
  332. package/src/screens/Unit/AddMenu.js +6 -20
  333. package/src/screens/Unit/ChooseLocation.js +1 -1
  334. package/src/screens/Unit/Detail.js +14 -9
  335. package/src/screens/Unit/ManageUnit.js +21 -15
  336. package/src/screens/Unit/MyAllUnit/index.js +1 -1
  337. package/src/screens/Unit/SelectAddToFavorites.js +11 -2
  338. package/src/screens/Unit/SelectAddress.js +4 -4
  339. package/src/screens/Unit/SmartAccount.js +1 -1
  340. package/src/screens/Unit/SmartAccountItem.js +3 -3
  341. package/src/screens/Unit/Station/__test__/index.test.js +19 -3
  342. package/src/screens/Unit/Station/index.js +2 -2
  343. package/src/screens/Unit/Summaries.js +2 -2
  344. package/src/screens/Unit/__test__/CheckSendEmail.test.js +6 -6
  345. package/src/screens/Unit/__test__/Detail.test.js +90 -55
  346. package/src/screens/Unit/__test__/ManageUnit.test.js +40 -18
  347. package/src/screens/Unit/__test__/SelectAddress.test.js +15 -8
  348. package/src/screens/Unit/__test__/SmartAccount.test.js +42 -25
  349. package/src/screens/Unit/__test__/SmartAccountItem.test.js +4 -3
  350. package/src/screens/Unit/components/AutomateScript/index.js +8 -2
  351. package/src/screens/Unit/components/ListMyAllUnit/index.js +1 -1
  352. package/src/screens/Unit/components/MyAllUnit/__test__/Header.test.js +9 -5
  353. package/src/screens/Unit/components/MyAllUnit/index.js +1 -1
  354. package/src/screens/Unit/components/MyUnitDevice/index.js +8 -5
  355. package/src/screens/Unit/components/SharedUnit/index.js +12 -6
  356. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
  357. package/src/screens/Unit/components/__test__/SharedUnit.test.js +24 -9
  358. package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +25 -11
  359. package/src/screens/UnitSummary/__test__/index.test.js +4 -2
  360. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +4 -2
  361. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -2
  362. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +4 -2
  363. package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -2
  364. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +5 -4
  365. package/src/screens/UnitSummary/components/RunningDevices/index.js +6 -3
  366. package/src/screens/UnitSummary/components/TotalPowerBox/index.js +2 -2
  367. package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -2
  368. package/src/screens/UnitSummary/components/__test__/TotalPowerBox.test.js +3 -2
  369. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +4 -2
  370. package/src/screens/UnitSummary/index.js +10 -8
  371. package/src/screens/WaterQualityGuide/__test__/index.test.js +17 -12
  372. package/src/screens/WaterQualityGuide/index.js +26 -10
  373. package/src/utils/Apis/axios.js +1 -0
  374. package/src/utils/I18n/translations/en.json +25 -10
  375. package/src/utils/I18n/translations/vi.json +22 -9
  376. package/src/utils/Route/index.js +22 -10
  377. package/src/commons/Connecting/index.js +0 -67
  378. package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +0 -28
  379. package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +0 -41
  380. package/src/commons/ConnectingProcess/__test__/Connecting.test.js +0 -163
  381. package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +0 -19
  382. package/src/commons/ConnectingProcess/index.js +0 -213
  383. package/src/commons/ConnectingProcess/styles.js +0 -69
  384. package/src/hooks/IoT/useGGHomeConnection.js +0 -91
  385. package/src/iot/RemoteControl/index.js +0 -55
  386. package/src/screens/AddNewDevice/ConnectDevices.js +0 -184
  387. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +0 -131
  388. package/src/screens/AddNewGateway/ConnectedGateway.js +0 -139
  389. package/src/screens/AddNewGateway/ConnectingGateway.js +0 -137
  390. package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +0 -214
  391. package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +0 -307
  392. package/src/screens/AddNewGateway/PlugAndPlay/__test__/ConnectWifiWarning.test.js +0 -75
  393. package/src/screens/AddNewGateway/PlugAndPlay/__test__/GatewayWifiList.test.js +0 -130
  394. package/src/screens/AddNewGateway/SelectGateway.js +0 -133
  395. package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -207
  396. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +0 -71
  397. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +0 -96
  398. package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +0 -120
  399. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +0 -115
  400. package/src/screens/ScanChipQR/hooks/index.js +0 -120
  401. package/src/screens/ScanChipQR/index.js +0 -29
  402. package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +0 -111
  403. package/src/screens/ScanSensorQR/hooks/index.js +0 -40
  404. package/src/screens/ScanSensorQR/index.js +0 -39
@@ -38,17 +38,26 @@ export const mockDataStore: ContextData = {
38
38
  isBluetoothEnabled: true,
39
39
  isNetworkConnected: true,
40
40
  camera_opened: [],
41
+ isLockWhenPickColor: false,
41
42
  },
42
43
  iot: {
43
- googlehome: {
44
+ homeassistant: {
44
45
  connections: {},
45
46
  },
47
+ lgthinq: {
48
+ unitConnected: [],
49
+ },
46
50
  internet: {
47
51
  statuses: {},
48
52
  },
49
53
  },
50
54
  valueEvaluations: {},
51
55
  fetchedValueEvaluationUnits: [],
56
+ devMode: {
57
+ itemDraggingId: null,
58
+ isEditingTemplate: false,
59
+ isInEditTemplateScreen: false,
60
+ },
52
61
  };
53
62
 
54
63
  export const mockSCStore = (data: ContextData): ContextData => {
@@ -76,6 +85,7 @@ export const mockSCStore = (data: ContextData): ContextData => {
76
85
  isConnectWifiGateway: false,
77
86
  isBluetoothEnabled: true,
78
87
  isNetworkConnected: true,
88
+ isLockWhenPickColor: false,
79
89
  },
80
90
  unit: {
81
91
  favoriteDeviceIds: [
@@ -91,8 +101,8 @@ export const mockSCStore = (data: ContextData): ContextData => {
91
101
  },
92
102
  iot: {
93
103
  ...mockDataStore.iot,
94
- googlehome: {
95
- ...mockDataStore.iot.googlehome,
104
+ homeassistant: {
105
+ ...mockDataStore.iot.homeassistant,
96
106
  connections: {},
97
107
  },
98
108
  internet: {
@@ -104,5 +114,10 @@ export const mockSCStore = (data: ContextData): ContextData => {
104
114
  ...data.valueEvaluations,
105
115
  },
106
116
  fetchedValueEvaluationUnits: [],
117
+ devMode: {
118
+ itemDraggingId: null,
119
+ isEditingTemplate: false,
120
+ isInEditTemplateScreen: false,
121
+ },
107
122
  };
108
123
  };
@@ -11,6 +11,7 @@ import {
11
11
  AutomateType,
12
12
  AppType,
13
13
  IoTType,
14
+ DevModeType,
14
15
  } from './actionType';
15
16
  import { uniq, reduce } from 'lodash';
16
17
 
@@ -26,6 +27,7 @@ export type ContextData = {
26
27
  iot: IoTType;
27
28
  valueEvaluations: {};
28
29
  fetchedValueEvaluationUnits: Array<number>;
30
+ devMode: DevModeType;
29
31
  };
30
32
 
31
33
  export type Action = {
@@ -61,17 +63,26 @@ export const initialState = {
61
63
  camera_opened: [],
62
64
  notificationData: null,
63
65
  popoverAnimating: false,
66
+ isLockWhenPickColor: false,
64
67
  },
65
68
  iot: {
66
- googlehome: {
69
+ homeassistant: {
67
70
  connections: {},
68
71
  },
72
+ lgthinq: {
73
+ unitConnected: [],
74
+ },
69
75
  internet: {
70
76
  statuses: {},
71
77
  },
72
78
  },
73
79
  valueEvaluations: {},
74
80
  fetchedValueEvaluationUnits: [],
81
+ devMode: {
82
+ itemDraggingId: null,
83
+ isEditingTemplate: false,
84
+ isInEditTemplateScreen: false,
85
+ },
75
86
  };
76
87
 
77
88
  export const reducer = (currentState: ContextData, action: Action) => {
@@ -258,32 +269,44 @@ export const reducer = (currentState: ContextData, action: Action) => {
258
269
  },
259
270
  };
260
271
 
261
- case Action.SET_GOOGLE_HOME_CONNECTIONS:
272
+ case Action.SET_HOME_ASSISTANT_CONNECTIONS:
262
273
  return {
263
274
  ...currentState,
264
275
  iot: {
265
276
  ...currentState.iot,
266
- googlehome: {
267
- ...currentState.iot.googlehome,
277
+ homeassistant: {
278
+ ...currentState.iot.homeassistant,
268
279
  connections: payload,
269
280
  },
270
281
  },
271
282
  };
272
- case Action.CHANGE_GOOGLE_HOME_CONN_STATE:
283
+ case Action.CHANGE_HOME_ASSISTANT_CONN_STATE:
273
284
  return {
274
285
  ...currentState,
275
286
  iot: {
276
287
  ...currentState.iot,
277
- googlehome: {
278
- ...currentState.iot.googlehome,
288
+ homeassistant: {
289
+ ...currentState.iot.homeassistant,
279
290
  connections: {
280
- ...currentState.iot.googlehome.connections,
291
+ ...currentState.iot.homeassistant.connections,
281
292
  [payload.option.chip_id]: payload.data,
282
293
  },
283
294
  },
284
295
  },
285
296
  };
286
297
 
298
+ case Action.SET_LG_THINQ_CONNECTED:
299
+ return {
300
+ ...currentState,
301
+ iot: {
302
+ ...currentState.iot,
303
+ lgthinq: {
304
+ ...currentState.iot.lgthinq,
305
+ unitConnected: [...currentState.iot.lgthinq.unitConnected, payload],
306
+ },
307
+ },
308
+ };
309
+
287
310
  case Action.SET_DEVICES_STATUS:
288
311
  // eslint-disable-next-line no-case-declarations
289
312
  let newStatuses = currentState.iot.internet.statuses;
@@ -317,7 +340,6 @@ export const reducer = (currentState: ContextData, action: Action) => {
317
340
  valueEvaluations: reduce(
318
341
  data,
319
342
  (dict, item) => {
320
- // eslint-disable-next-line no-param-reassign
321
343
  dict[item.config] = item;
322
344
  return dict;
323
345
  },
@@ -351,6 +373,41 @@ export const reducer = (currentState: ContextData, action: Action) => {
351
373
  popoverAnimating: payload,
352
374
  },
353
375
  };
376
+ case Action.SET_LOCK_VIEW_PICK_COLOR:
377
+ return {
378
+ ...currentState,
379
+ app: {
380
+ ...currentState.app,
381
+ isLockWhenPickColor: payload,
382
+ },
383
+ };
384
+ // NOTE: DEV MODE
385
+ case Action.SET_WIDGET_DRAGGING:
386
+ return {
387
+ ...currentState,
388
+ devMode: {
389
+ ...currentState.devMode,
390
+ itemDraggingId: payload,
391
+ },
392
+ };
393
+
394
+ case Action.SET_IS_EDITING_TEMPLATE:
395
+ return {
396
+ ...currentState,
397
+ devMode: {
398
+ ...currentState.devMode,
399
+ isEditingTemplate: payload,
400
+ },
401
+ };
402
+
403
+ case Action.SET_IS_IN_EDIT_TEMPLATE_SCREEN:
404
+ return {
405
+ ...currentState,
406
+ devMode: {
407
+ ...currentState.devMode,
408
+ isInEditTemplateScreen: payload,
409
+ },
410
+ };
354
411
 
355
412
  default:
356
413
  return currentState;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { useRemoteControl } from '../hooks/IoT';
2
3
 
3
4
  function withRemoteControl(Component) {
@@ -5,7 +5,7 @@ import useKeyboardShow from './useKeyboardShow';
5
5
  import usePopover from './usePopover';
6
6
  import useTitleHeader from './useTitleHeader';
7
7
  import useDevicesStatus from './useDevicesStatus';
8
- import useGGHomeDeviceConnected from './useGGHomeDeviceConnected';
8
+ import useHomeAssistantDeviceConnected from './useHomeAssistantDeviceConnected';
9
9
  import { useBlockBackAndroid } from './useBlockBackAndroid';
10
10
  import { useIsOwnerOfUnit } from './useIsOwnerOfUnit';
11
11
  import { useStatusBar } from './useStatusBar';
@@ -23,5 +23,5 @@ export {
23
23
  useStatusBar,
24
24
  useGetIdUser,
25
25
  useDevicesStatus,
26
- useGGHomeDeviceConnected,
26
+ useHomeAssistantDeviceConnected,
27
27
  };
@@ -27,7 +27,7 @@ const useDevicesStatus = (unit, devices) => {
27
27
  if (success) {
28
28
  setAction(Action.SET_DEVICES_STATUS, data);
29
29
  }
30
- timeoutId = setTimeout(() => getDevicesStatus(_unit, _devices), 5000);
30
+ timeoutId = setTimeout(() => getDevicesStatus(_unit, _devices), 10000);
31
31
  // eslint-disable-next-line react-hooks/exhaustive-deps
32
32
  }, []);
33
33
 
@@ -1,8 +1,8 @@
1
1
  import { useSCContextSelector } from '../../context';
2
2
 
3
- const useGGHomeDeviceConnected = (device) => {
3
+ const useHomeAssistantDeviceConnected = (device) => {
4
4
  const connections = useSCContextSelector(
5
- (state) => state.iot.googlehome.connections
5
+ (state) => state.iot.homeassistant.connections
6
6
  );
7
7
  const isNetworkConnected = useSCContextSelector(
8
8
  (state) => state.app.isNetworkConnected
@@ -20,4 +20,4 @@ const useGGHomeDeviceConnected = (device) => {
20
20
  return { isConnected, isConnecting };
21
21
  };
22
22
 
23
- export default useGGHomeDeviceConnected;
23
+ export default useHomeAssistantDeviceConnected;
@@ -1,14 +1,19 @@
1
- import { useCallback, useState, useRef } from 'react';
1
+ import { useCallback, useState, useRef, useContext } from 'react';
2
+ import { SCContext } from '../../context';
3
+ import { Action } from '../../context/actionType';
2
4
 
3
5
  const usePopover = () => {
4
6
  const [showingPopover, setShowingPopover] = useState(false);
5
7
  const childRef = useRef(null);
8
+ const { setAction } = useContext(SCContext);
6
9
 
7
10
  const showPopoverWithRef = useCallback(
8
11
  (ref) => {
9
12
  childRef.current = ref.current;
10
13
  setShowingPopover(true);
14
+ setAction(Action.SET_POPOVER_ANIMATING, true);
11
15
  },
16
+ // eslint-disable-next-line react-hooks/exhaustive-deps
12
17
  [childRef]
13
18
  );
14
19
 
@@ -3,7 +3,7 @@ import { act, renderHook } from '@testing-library/react-hooks';
3
3
  import { createConnection, getStates } from 'home-assistant-js-websocket';
4
4
  import MockAdapter from 'axios-mock-adapter';
5
5
  import api from '../../../utils/Apis/axios';
6
- import { useGGHomeConnection } from '../index';
6
+ import { useHomeAssistantConnection } from '../index';
7
7
  import { SCProvider } from '../../../context';
8
8
  import { mockSCStore } from '../../../context/mockStore';
9
9
  import { Action } from '../../../context/actionType';
@@ -39,7 +39,7 @@ const mockUseContext = jest.fn().mockImplementation(() => ({
39
39
 
40
40
  React.useContext = mockUseContext;
41
41
 
42
- describe('Test useGGHomeConnection', () => {
42
+ describe('Test useHomeAssistantConnection', () => {
43
43
  let options;
44
44
 
45
45
  beforeEach(() => {
@@ -111,26 +111,26 @@ describe('Test useGGHomeConnection', () => {
111
111
  ];
112
112
  });
113
113
 
114
- it('test connectGoogleHome all connected', async () => {
114
+ it('test connectHomeAssistant all connected', async () => {
115
115
  let conns = {};
116
116
  options.forEach((option) => {
117
117
  conns[option.chip_id] = connection;
118
118
  createConnection.mockImplementationOnce(() => connection);
119
119
  });
120
- const { result } = renderHook(() => useGGHomeConnection(), {
120
+ const { result } = renderHook(() => useHomeAssistantConnection(), {
121
121
  wrapper,
122
122
  });
123
123
 
124
124
  await act(async () => {
125
- await result.current.connectGoogleHome(options);
125
+ await result.current.connectHomeAssistant(options);
126
126
  });
127
127
  expect(mockedSetAction).toBeCalledWith(
128
- Action.SET_GOOGLE_HOME_CONNECTIONS,
128
+ Action.SET_HOME_ASSISTANT_CONNECTIONS,
129
129
  conns
130
130
  );
131
131
  });
132
132
 
133
- it('test connectGoogleHome have chip disconnected', async () => {
133
+ it('test connectHomeAssistant have chip disconnected', async () => {
134
134
  let conns = {};
135
135
  conns[options[0].chip_id] = connection;
136
136
  conns[options[1].chip_id] = 0;
@@ -138,15 +138,15 @@ describe('Test useGGHomeConnection', () => {
138
138
  createConnection.mockImplementationOnce(async () => {
139
139
  throw new Error();
140
140
  });
141
- const { result } = renderHook(() => useGGHomeConnection(), {
141
+ const { result } = renderHook(() => useHomeAssistantConnection(), {
142
142
  wrapper,
143
143
  });
144
144
 
145
145
  await act(async () => {
146
- await result.current.connectGoogleHome(options);
146
+ await result.current.connectHomeAssistant(options);
147
147
  });
148
148
  expect(mockedSetAction).toBeCalledWith(
149
- Action.SET_GOOGLE_HOME_CONNECTIONS,
149
+ Action.SET_HOME_ASSISTANT_CONNECTIONS,
150
150
  conns
151
151
  );
152
152
  });
@@ -159,17 +159,17 @@ describe('Test useGGHomeConnection', () => {
159
159
  throw new Error();
160
160
  });
161
161
  });
162
- const { result } = renderHook(() => useGGHomeConnection(), {
162
+ const { result } = renderHook(() => useHomeAssistantConnection(), {
163
163
  wrapper,
164
164
  });
165
165
 
166
- mock.onPost(API.GOOGLE_HOME.CHECK_SEND_EMAIL()).reply(200);
166
+ mock.onPost(API.HOME_ASSISTANT.CHECK_SEND_EMAIL()).reply(200);
167
167
  await act(async () => {
168
- await result.current.connectGoogleHome(options);
168
+ await result.current.connectHomeAssistant(options);
169
169
  });
170
170
  expect(mockedSetAction).toBeCalledTimes(2);
171
171
  expect(mockedSetAction).toBeCalledWith(
172
- Action.SET_GOOGLE_HOME_CONNECTIONS,
172
+ Action.SET_HOME_ASSISTANT_CONNECTIONS,
173
173
  conns
174
174
  );
175
175
  expect(mockedSetAction).toBeCalledWith(Action.LIST_DEVICE_TYPES, {
@@ -178,20 +178,20 @@ describe('Test useGGHomeConnection', () => {
178
178
  });
179
179
  });
180
180
 
181
- it('test disconnectGoogleHome', async () => {
181
+ it('test disconnectHomeAssistant', async () => {
182
182
  let conns = {};
183
183
  conns[options[0].chip_id] = connection;
184
184
  conns[options[1].chip_id] = 0;
185
185
 
186
- const { result } = renderHook(() => useGGHomeConnection(), {
186
+ const { result } = renderHook(() => useHomeAssistantConnection(), {
187
187
  wrapper,
188
188
  });
189
189
 
190
190
  await act(async () => {
191
- await result.current.disconnectGoogleHome(conns, options);
191
+ await result.current.disconnectHomeAssistant(conns, options);
192
192
  });
193
193
  expect(mockedSetAction).toBeCalledWith(
194
- Action.SET_GOOGLE_HOME_CONNECTIONS,
194
+ Action.SET_HOME_ASSISTANT_CONNECTIONS,
195
195
  {}
196
196
  );
197
197
  });
@@ -5,14 +5,14 @@ import {
5
5
  sendCommandOverBluetooth,
6
6
  SEND_COMMAND_OVER_BLUETOOTH_FAIL,
7
7
  } from '../../../iot/RemoteControl/Bluetooth';
8
- import { sendCommandOverGoogleHome } from '../../../iot/RemoteControl/GoogleHome';
8
+ import { sendCommandOverHomeAssistant } from '../../../iot/RemoteControl/HomeAssistant';
9
9
  import { sendCommandOverInternet } from '../../../iot/RemoteControl/Internet';
10
10
  import { sendCommandOverLGThinq } from '../../../iot/RemoteControl/LG';
11
11
  import { SCProvider } from '../../../context';
12
12
  import { mockSCStore } from '../../../context/mockStore';
13
13
 
14
14
  jest.mock('../../../iot/RemoteControl/Bluetooth');
15
- jest.mock('../../../iot/RemoteControl/GoogleHome');
15
+ jest.mock('../../../iot/RemoteControl/HomeAssistant');
16
16
  jest.mock('../../../iot/RemoteControl/Internet');
17
17
  jest.mock('../../../iot/RemoteControl/LG');
18
18
 
@@ -32,7 +32,7 @@ describe('Test useRemoteControl', () => {
32
32
 
33
33
  beforeEach(() => {
34
34
  sendCommandOverBluetooth.mockClear();
35
- sendCommandOverGoogleHome.mockClear();
35
+ sendCommandOverHomeAssistant.mockClear();
36
36
  sendCommandOverInternet.mockClear();
37
37
  sendCommandOverLGThinq.mockClear();
38
38
 
@@ -62,7 +62,7 @@ describe('Test useRemoteControl', () => {
62
62
  sendRemoteCommand.current(sensor, action, data, userId);
63
63
  });
64
64
  expect(sendCommandOverInternet).not.toBeCalled();
65
- expect(sendCommandOverGoogleHome).not.toBeCalled();
65
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
66
66
  expect(sendCommandOverLGThinq).not.toBeCalled();
67
67
  expect(sendCommandOverBluetooth).not.toBeCalled();
68
68
  });
@@ -83,7 +83,7 @@ describe('Test useRemoteControl', () => {
83
83
  userId
84
84
  );
85
85
  expect(sendCommandOverInternet).not.toBeCalled();
86
- expect(sendCommandOverGoogleHome).not.toBeCalled();
86
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
87
87
  expect(sendCommandOverLGThinq).not.toBeCalled();
88
88
  });
89
89
 
@@ -112,7 +112,7 @@ describe('Test useRemoteControl', () => {
112
112
  'bluetooth'
113
113
  );
114
114
  expect(sendCommandOverInternet).toBeCalledTimes(1);
115
- expect(sendCommandOverGoogleHome).not.toBeCalled();
115
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
116
116
  expect(sendCommandOverLGThinq).not.toBeCalled();
117
117
  });
118
118
 
@@ -135,7 +135,7 @@ describe('Test useRemoteControl', () => {
135
135
  userId
136
136
  );
137
137
  expect(sendCommandOverInternet).not.toBeCalled();
138
- expect(sendCommandOverGoogleHome).not.toBeCalled();
138
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
139
139
  expect(sendCommandOverLGThinq).not.toBeCalled();
140
140
  });
141
141
 
@@ -157,22 +157,27 @@ describe('Test useRemoteControl', () => {
157
157
  'internet'
158
158
  );
159
159
  expect(sendCommandOverBluetooth).not.toBeCalled();
160
- expect(sendCommandOverGoogleHome).not.toBeCalled();
160
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
161
161
  expect(sendCommandOverLGThinq).not.toBeCalled();
162
162
  });
163
163
 
164
- it('test send remote command via googlehome', async () => {
164
+ it('test send remote command via homeassistant', async () => {
165
165
  action.command_prefer_over_bluetooth = false;
166
166
  action.command_prefer_over_googlehome = true;
167
167
  const { result: sendRemoteCommand } = renderHook(() => useRemoteControl(), {
168
168
  wrapper,
169
169
  });
170
170
 
171
- sendCommandOverGoogleHome.mockImplementation(async () => true);
171
+ sendCommandOverHomeAssistant.mockImplementation(async () => true);
172
172
  act(() => {
173
173
  sendRemoteCommand.current(sensor, action, data, userId);
174
174
  });
175
- expect(sendCommandOverGoogleHome).toBeCalledWith({}, sensor, action, data);
175
+ expect(sendCommandOverHomeAssistant).toBeCalledWith(
176
+ {},
177
+ sensor,
178
+ action,
179
+ data
180
+ );
176
181
  expect(sendCommandOverBluetooth).not.toBeCalled();
177
182
  expect(sendCommandOverInternet).not.toBeCalled();
178
183
  expect(sendCommandOverLGThinq).not.toBeCalled();
@@ -190,7 +195,7 @@ describe('Test useRemoteControl', () => {
190
195
  sendRemoteCommand.current(sensor, action, data, userId);
191
196
  });
192
197
  expect(sendCommandOverBluetooth).not.toBeCalled();
193
- expect(sendCommandOverGoogleHome).not.toBeCalled();
198
+ expect(sendCommandOverHomeAssistant).not.toBeCalled();
194
199
  expect(sendCommandOverInternet).not.toBeCalled();
195
200
  });
196
201
  });
@@ -1,11 +1,11 @@
1
- import useGGHomeConnection from './useGGHomeConnection';
1
+ import useHomeAssistantConnection from './useHomeAssistantConnection';
2
2
  import useRemoteControl from './useRemoteControl';
3
3
  import useValueEvaluations from './useValueEvaluation';
4
4
  import useWatchConfigs from './useWatchConfigs';
5
5
  import useUnwatchLGDeviceConfigControl from './useUnwatchLGDeviceConfigControl';
6
6
 
7
7
  export {
8
- useGGHomeConnection,
8
+ useHomeAssistantConnection,
9
9
  useRemoteControl,
10
10
  useValueEvaluations,
11
11
  useWatchConfigs,
@@ -0,0 +1,91 @@
1
+ import { useContext, useCallback } from 'react';
2
+ import { SCContext, useSCContextSelector } from '../../context';
3
+ import { Action } from '../../context/actionType';
4
+ import {
5
+ homeAssistantConnect,
6
+ homeAssistantDisconnect,
7
+ } from '../../iot/RemoteControl/HomeAssistant';
8
+ import { axiosPost } from '../../utils/Apis/axios';
9
+ import { API } from '../../configs';
10
+
11
+ const useHomeAssistantConnection = () => {
12
+ const { setAction } = useContext(SCContext);
13
+ const { connections } = useSCContextSelector(
14
+ (state) => state.iot.homeassistant
15
+ );
16
+ const { listDevice } = useSCContextSelector((state) => state);
17
+
18
+ const onEstablished = useCallback(
19
+ async (newConnections, options) => {
20
+ setAction(Action.SET_HOME_ASSISTANT_CONNECTIONS, newConnections);
21
+
22
+ const isConnected = options.some(
23
+ (option) => !!newConnections[option.chip_id]
24
+ );
25
+ let chipId = options[0].chip_id;
26
+ if (!isConnected) {
27
+ setAction(Action.LIST_DEVICE_TYPES, {
28
+ chipId: chipId,
29
+ sentEmail: true,
30
+ });
31
+ await axiosPost(API.HOME_ASSISTANT.CHECK_SEND_EMAIL(), {
32
+ chip_id: chipId,
33
+ is_connected: false,
34
+ });
35
+ } else if (isConnected && listDevice[chipId]?.sentEmail) {
36
+ setAction(Action.LIST_DEVICE_TYPES, {
37
+ chipId: chipId,
38
+ sentEmail: false,
39
+ });
40
+ await axiosPost(API.HOME_ASSISTANT.CHECK_SEND_EMAIL(), {
41
+ chip_id: chipId,
42
+ is_connected: true,
43
+ });
44
+ }
45
+ },
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
+ [listDevice]
48
+ );
49
+
50
+ const onDisconnected = useCallback(async (option) => {
51
+ setAction(Action.CHANGE_HOME_ASSISTANT_CONN_STATE, { option, data: 0 });
52
+ // eslint-disable-next-line react-hooks/exhaustive-deps
53
+ }, []);
54
+
55
+ const onReconnected = useCallback(async (option, connection) => {
56
+ setAction(Action.CHANGE_HOME_ASSISTANT_CONN_STATE, {
57
+ option,
58
+ data: connection,
59
+ });
60
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61
+ }, []);
62
+
63
+ const connectHomeAssistant = useCallback(
64
+ async (options) => {
65
+ await homeAssistantConnect(
66
+ connections,
67
+ options,
68
+ onEstablished,
69
+ onDisconnected,
70
+ onReconnected
71
+ );
72
+ },
73
+ [connections, onEstablished, onDisconnected, onReconnected]
74
+ );
75
+
76
+ const disconnectHomeAssistant = useCallback(
77
+ async (options) => {
78
+ await homeAssistantDisconnect(connections, options);
79
+ setAction(Action.SET_HOME_ASSISTANT_CONNECTIONS, {});
80
+ },
81
+ // eslint-disable-next-line react-hooks/exhaustive-deps
82
+ [connections]
83
+ );
84
+
85
+ return {
86
+ connectHomeAssistant,
87
+ disconnectHomeAssistant,
88
+ };
89
+ };
90
+
91
+ export default useHomeAssistantConnection;
@@ -1,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { useSCContextSelector } from '../../context';
3
- import { sendCommandOverGoogleHome } from '../../iot/RemoteControl/GoogleHome';
3
+ import { sendCommandOverHomeAssistant } from '../../iot/RemoteControl/HomeAssistant';
4
4
  import { sendCommandOverInternet } from '../../iot/RemoteControl/Internet';
5
5
  import {
6
6
  sendCommandOverBluetooth,
@@ -10,8 +10,8 @@ import { ToastBottomHelper } from '../../utils/Utils';
10
10
  import { t } from 'i18n-js';
11
11
 
12
12
  const useRemoteControl = () => {
13
- const ggHomeConnections = useSCContextSelector(
14
- (state) => state.iot.googlehome.connections
13
+ const homeAssistantConnections = useSCContextSelector(
14
+ (state) => state.iot.homeassistant.connections
15
15
  );
16
16
 
17
17
  const sendRemoteCommand = useCallback(
@@ -58,8 +58,8 @@ const useRemoteControl = () => {
58
58
  }
59
59
 
60
60
  if (action.command_prefer_over_googlehome && !result) {
61
- result = await sendCommandOverGoogleHome(
62
- ggHomeConnections,
61
+ result = await sendCommandOverHomeAssistant(
62
+ homeAssistantConnections,
63
63
  sensor,
64
64
  action,
65
65
  data
@@ -67,7 +67,7 @@ const useRemoteControl = () => {
67
67
  }
68
68
  return result;
69
69
  },
70
- [ggHomeConnections]
70
+ [homeAssistantConnections]
71
71
  );
72
72
 
73
73
  return sendRemoteCommand;