@eohjsc/react-native-smart-city 0.3.30 → 0.3.33

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 (411) 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 +20 -4
  12. package/src/commons/Action/__test__/ItemQuickAction.test.js +35 -11
  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 +23 -15
  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 +30 -12
  29. package/src/commons/ActionGroup/OneBigButtonTemplate.js +5 -5
  30. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +51 -28
  31. package/src/commons/ActionGroup/SliderRangeTemplate.js +2 -2
  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 +21 -7
  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/ActionTemplate/OnOffButtonAction.js +14 -5
  49. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +23 -2
  50. package/src/commons/ActionTemplate/__test__/index.test.js +2 -0
  51. package/src/commons/ActionTemplate/index.js +1 -0
  52. package/src/commons/AlertAction/index.js +2 -2
  53. package/src/commons/Auth/AccountItem.js +9 -3
  54. package/src/commons/Auth/__test__/AccountItem.test.js +6 -3
  55. package/src/commons/Automate/ItemAutomate.js +22 -3
  56. package/src/commons/BackDefault/index.js +2 -2
  57. package/src/commons/BottomButtonView/index.js +4 -5
  58. package/src/commons/Button/index.js +0 -2
  59. package/src/commons/ButtonPopup/index.js +3 -3
  60. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +3 -2
  61. package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +4 -2
  62. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +6 -3
  63. package/src/commons/Dashboard/MyUnit/index.js +5 -3
  64. package/src/commons/DevMode/CardDevMode.js +42 -0
  65. package/src/commons/DevMode/EmptyComponent.js +18 -0
  66. package/src/commons/DevMode/Item.js +21 -0
  67. package/src/commons/DevMode/Styles/CardStyles.js +40 -0
  68. package/src/commons/DevMode/Styles/EmptyComponentStyles.js +15 -0
  69. package/src/commons/DevMode/Styles/ItemStyles.js +27 -0
  70. package/src/commons/DevMode/Styles/TextWithLabelStyles.js +36 -0
  71. package/src/commons/DevMode/TextWithLabel.js +30 -0
  72. package/src/commons/DevMode/index.js +5 -1
  73. package/src/commons/Device/ConnectedViewHeader.js +2 -2
  74. package/src/commons/Device/DeviceAlertStatus.js +3 -3
  75. package/src/commons/Device/DisconnectedView.js +2 -2
  76. package/src/commons/Device/Emergency/EmergencyButton.js +2 -2
  77. package/src/commons/Device/Emergency/EmergencyDetail.js +1 -1
  78. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +3 -2
  79. package/src/commons/Device/FlatListItems.js +2 -2
  80. package/src/commons/Device/ItemAddNew/index.js +7 -12
  81. package/src/commons/Device/ItemDevice.js +16 -11
  82. package/src/commons/Device/PMSensor/PMSensorIndicatior.js +1 -1
  83. package/src/commons/Device/RainningSensor/CurrentRainSensor.js +1 -1
  84. package/src/commons/Device/SensorConnectedStatus.js +5 -2
  85. package/src/commons/Device/WindDirection/Compass/index.js +6 -3
  86. package/src/commons/Device/WindSpeed/Anemometer/index.js +1 -1
  87. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +8 -4
  88. package/src/commons/Device/__test__/FlatListItems.test.js +3 -2
  89. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +4 -2
  90. package/src/commons/Explore/ActivityIndicator/index.js +5 -2
  91. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +3 -3
  92. package/src/commons/Explore/SearchBox/index.js +2 -2
  93. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +4 -4
  94. package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +11 -8
  95. package/src/commons/FieldTemplate/ChooseUserField/index.js +2 -2
  96. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +3 -2
  97. package/src/commons/FieldTemplate/PasscodeField/index.js +2 -2
  98. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +12 -7
  99. package/src/commons/Form/TextInput.js +2 -2
  100. package/src/commons/Form/TextInputPassword.js +2 -2
  101. package/src/commons/GroupCheckBox/__test__/GroupCheckBox.test.js +5 -3
  102. package/src/commons/GroupCheckBox/index.js +2 -2
  103. package/src/commons/Header/HeaderCustom.js +8 -2
  104. package/src/commons/HeaderAni/index.js +2 -3
  105. package/src/commons/MediaPlayerDetail/index.js +2 -2
  106. package/src/commons/MenuActionList/index.js +2 -2
  107. package/src/commons/MenuActionMore/index.js +5 -4
  108. package/src/commons/NavBar/index.js +2 -3
  109. package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +12 -6
  110. package/src/commons/OneTapTemplate/OptionsDropdownActionTemplate.js +7 -3
  111. package/src/commons/OneTapTemplate/StatesGridActionTemplate.js +4 -2
  112. package/src/commons/OneTapTemplate/__test__/NumberUpDownActionTemplate.test.js +11 -8
  113. package/src/commons/OneTapTemplate/__test__/OptionsDropdownActionTemplate.test.js +9 -5
  114. package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +5 -3
  115. package/src/commons/Popover/index.js +2 -13
  116. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +5 -3
  117. package/src/commons/PreventAccess/index.js +3 -3
  118. package/src/commons/{Connecting → Processing}/__test__/Connecting.test.js +5 -4
  119. package/src/commons/Processing/index.js +93 -0
  120. package/src/commons/{Connecting → Processing}/styles.js +9 -1
  121. package/src/commons/SelectGateway/index.js +105 -0
  122. package/src/commons/SelectGateway/styles.js +55 -0
  123. package/src/commons/SelectSubUnit/__test__/SelectSubUnit.test.js +106 -0
  124. package/src/commons/SelectSubUnit/index.js +124 -0
  125. package/src/commons/SelectSubUnit/styles.js +55 -0
  126. package/src/commons/SelectUnit/__test__/SelectUnit.test.js +120 -0
  127. package/src/commons/SelectUnit/index.js +106 -0
  128. package/src/commons/SelectUnit/styles.js +54 -0
  129. package/src/commons/Sharing/WrapHeaderScrollable.js +6 -4
  130. package/src/commons/SubUnit/OneTap/ItemOneTap.js +4 -4
  131. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +25 -10
  132. package/src/commons/SubUnit/OneTap/index.js +9 -4
  133. package/src/commons/SubUnit/ShortDetail.js +11 -29
  134. package/src/commons/SubUnit/__test__/ShortDetail.test.js +15 -10
  135. package/src/commons/SummaryItem/index.js +2 -2
  136. package/src/commons/Tabbar/__test__/index.test.js +97 -0
  137. package/src/commons/Unit/HeaderUnit/index.js +4 -5
  138. package/src/commons/Unit/SharedUnit.js +10 -8
  139. package/src/commons/Unit/__test__/HeaderUnit.test.js +13 -5
  140. package/src/commons/Unit/__test__/SharedUnit.test.js +30 -11
  141. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +13 -8
  142. package/src/commons/UnitSummary/AirQuality/index.js +7 -3
  143. package/src/commons/UnitSummary/TotalPowerBox.js +2 -2
  144. package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -2
  145. package/src/commons/UnitSummary/__test__/TotalPowerBox.test.js +3 -2
  146. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +4 -2
  147. package/src/commons/ViewButtonBottom/index.js +4 -4
  148. package/src/commons/WheelDateTimePicker/index.js +5 -3
  149. package/src/commons/WrapParallaxScrollView/index.js +2 -1
  150. package/src/configs/API.js +12 -14
  151. package/src/configs/AccessibilityLabel.js +611 -0
  152. package/src/configs/Colors.js +4 -0
  153. package/src/configs/Constants.js +1 -604
  154. package/src/configs/Images.js +3 -0
  155. package/src/context/actionType.ts +19 -3
  156. package/src/context/mockStore.ts +18 -3
  157. package/src/context/reducer.ts +66 -9
  158. package/src/hoc/__test__/withRemoteControl.test.js +24 -0
  159. package/src/hoc/withRemoteControl.js +1 -0
  160. package/src/hooks/Common/__test__/useAndroidTranslucentStatusBar.test.js +55 -0
  161. package/src/hooks/Common/index.js +2 -2
  162. package/src/hooks/Common/useDevicesStatus.js +19 -15
  163. package/src/hooks/Common/{useGGHomeDeviceConnected.js → useHomeAssistantDeviceConnected.js} +3 -3
  164. package/src/hooks/Common/usePopover.js +6 -1
  165. package/src/hooks/IoT/__test__/{useGGHomeConnection.test.js → useHomeAssistantConnection.test.js} +18 -18
  166. package/src/hooks/IoT/__test__/useRemoteControl.test.js +17 -12
  167. package/src/hooks/IoT/index.js +2 -2
  168. package/src/hooks/IoT/useHomeAssistantConnection.js +91 -0
  169. package/src/hooks/IoT/useRemoteControl.js +6 -6
  170. package/src/hooks/__test__/useInitDeepLink.test.js +28 -0
  171. package/src/hooks/useReceiveNotifications.js +2 -4
  172. package/src/iot/RemoteControl/{GoogleHome.js → HomeAssistant.js} +21 -17
  173. package/src/iot/RemoteControl/LG.js +2 -1
  174. package/src/iot/RemoteControl/__test__/{GoogleHome.test.js → HomeAssistant.test.js} +30 -30
  175. package/src/navigations/AddDeviceStack.js +0 -14
  176. package/src/navigations/AddGatewayStack.js +51 -21
  177. package/src/navigations/Main.js +28 -4
  178. package/src/navigations/SmartIrStack.js +3 -3
  179. package/src/navigations/UnitStack.js +1 -1
  180. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +5 -3
  181. package/src/screens/AQIGuide/index.js +5 -3
  182. package/src/screens/ActivityLog/FilterPopup.js +2 -2
  183. package/src/screens/ActivityLog/__test__/FilterPopup.test.js +2 -2
  184. package/src/screens/ActivityLog/__test__/index.test.js +3 -2
  185. package/src/screens/ActivityLog/index.js +3 -3
  186. package/src/screens/AddCommon/SelectSubUnit.js +44 -191
  187. package/src/screens/AddCommon/SelectUnit.js +51 -204
  188. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +7 -50
  189. package/src/screens/AddCommon/__test__/SelectUnit.test.js +28 -26
  190. package/src/screens/AddLocationMaps/__test__/index.test.js +13 -7
  191. package/src/screens/AddLocationMaps/index.js +3 -3
  192. package/src/screens/AddNewAction/Device/index.js +2 -2
  193. package/src/screens/AddNewAction/SelectAction.js +16 -7
  194. package/src/screens/AddNewAction/SelectSensorDevices.js +3 -3
  195. package/src/screens/AddNewAction/__test__/SelectAction.test.js +2 -2
  196. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +8 -3
  197. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +11 -7
  198. package/src/screens/AddNewAutoSmart/index.js +9 -12
  199. package/src/screens/AddNewDevice/ConnectingDevices.js +1 -1
  200. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +7 -4
  201. package/src/screens/AddNewDevice/index.js +4 -4
  202. package/src/screens/AddNewGateway/ConnectingDevice.js +40 -0
  203. package/src/screens/AddNewGateway/ConnectingModbusDevice.js +61 -0
  204. package/src/screens/AddNewGateway/ConnectingWifiDevice.js +70 -0
  205. package/src/screens/AddNewGateway/ConnectingZigbeeDevice.js +60 -0
  206. package/src/screens/AddNewGateway/PlugAndPlay/FirstWarning.js +21 -8
  207. package/src/screens/AddNewGateway/PlugAndPlay/__test__/FirstWarning.test.js +23 -4
  208. package/src/screens/AddNewGateway/RenameNewDevices.js +141 -0
  209. package/src/screens/AddNewGateway/RenameNewDevicesStyles.js +75 -0
  210. package/src/screens/AddNewGateway/ScanGatewayQR.js +57 -0
  211. package/src/screens/AddNewGateway/ScanModbusQR.js +53 -0
  212. package/src/screens/AddNewGateway/ScanWifiDeviceQR.js +55 -0
  213. package/src/screens/AddNewGateway/SelectDeviceSubUnit.js +31 -0
  214. package/src/screens/AddNewGateway/SelectDeviceType.js +52 -0
  215. package/src/screens/AddNewGateway/SelectDeviceUnit.js +29 -0
  216. package/src/screens/AddNewGateway/SelectModbusGateway.js +34 -0
  217. package/src/screens/AddNewGateway/SelectZigbeeGateway.js +34 -0
  218. package/src/screens/AddNewGateway/ShareWifiPassword.js +302 -0
  219. package/src/screens/AddNewGateway/ShareWifiPasswordStyles.js +44 -0
  220. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +7 -4
  221. package/src/screens/AddNewGateway/__test__/ConnectingModbusDevice.test.js +63 -0
  222. package/src/screens/AddNewGateway/__test__/{SelectGateway.test.js → ConnectingWifiDevice.test.js} +15 -10
  223. package/src/screens/AddNewGateway/__test__/ConnectingZigbeeDevice.test.js +62 -0
  224. package/src/screens/AddNewGateway/__test__/RenameNewDevices.test.js +191 -0
  225. package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +73 -0
  226. package/src/screens/AddNewGateway/__test__/ScanModbusQR.test.js +75 -0
  227. package/src/screens/AddNewGateway/__test__/ScanWifiDeviceQR.test.js +73 -0
  228. package/src/screens/AddNewGateway/__test__/SelectDeviceSubUnit.test.js +47 -0
  229. package/src/screens/AddNewGateway/__test__/SelectDeviceType.test.js +89 -0
  230. package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +48 -0
  231. package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +77 -0
  232. package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +77 -0
  233. package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +294 -0
  234. package/src/screens/AddNewGateway/hooks/__Tests__/index.test.js +27 -0
  235. package/src/screens/AddNewGateway/index.js +4 -4
  236. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +5 -4
  237. package/src/screens/AddNewOneTap/index.js +4 -4
  238. package/src/screens/Automate/__test__/index.test.js +2 -2
  239. package/src/screens/Automate/index.js +6 -2
  240. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +3 -2
  241. package/src/screens/ConfirmUnitDeletion/index.js +3 -3
  242. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +5 -5
  243. package/src/screens/Device/EditDevice/index.js +3 -3
  244. package/src/screens/Device/__test__/detail.test.js +38 -22
  245. package/src/screens/Device/components/DetailHistoryChart.js +7 -5
  246. package/src/screens/Device/components/SensorConnectStatusViewHeader.js +6 -6
  247. package/src/screens/Device/components/SensorDisplayItem.js +51 -26
  248. package/src/screens/Device/detail.js +31 -23
  249. package/src/screens/Device/hooks/useEvaluateValue.js +0 -2
  250. package/src/screens/DeviceInfo/__test__/index.test.js +8 -4
  251. package/src/screens/DeviceInfo/index.js +10 -6
  252. package/src/screens/Drawer/index.js +30 -13
  253. package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +8 -4
  254. package/src/screens/EmergencyContacts/EmergencyContactsList.js +1 -1
  255. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +5 -3
  256. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +9 -5
  257. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +7 -3
  258. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +7 -3
  259. package/src/screens/EmergencySetting/__test__/DropDownItem.test.js +3 -2
  260. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  261. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +6 -3
  262. package/src/screens/EnterPassword/index.js +5 -3
  263. package/src/screens/GuestInfo/__test__/index.test.js +18 -12
  264. package/src/screens/GuestInfo/components/AccessScheduleItem.js +2 -2
  265. package/src/screens/GuestInfo/components/AccessScheduleSheet.js +3 -3
  266. package/src/screens/GuestInfo/components/HeaderGuestInfo.js +2 -2
  267. package/src/screens/GuestInfo/components/RecurringDetail.js +4 -4
  268. package/src/screens/GuestInfo/components/TemporaryDetail.js +3 -3
  269. package/src/screens/GuestInfo/index.js +1 -1
  270. package/src/screens/HanetCamera/Detail.js +10 -4
  271. package/src/screens/HanetCamera/ManageAccess.js +4 -4
  272. package/src/screens/HanetCamera/MemberInfo.js +1 -1
  273. package/src/screens/HanetCamera/__test__/Detail.test.js +5 -3
  274. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +10 -4
  275. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +4 -2
  276. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -2
  277. package/src/screens/ManageAccess/index.js +1 -1
  278. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +4 -4
  279. package/src/screens/MoveToAnotherSubUnit/index.js +2 -2
  280. package/src/screens/PlayBackCamera/__test__/index.test.js +9 -6
  281. package/src/screens/PlayBackCamera/index.js +6 -6
  282. package/src/screens/ScanChipQR/components/QRScan/__test__/QRScan.test.js +1 -1
  283. package/src/screens/ScanChipQR/components/QRScan/index.js +10 -3
  284. package/src/screens/ScriptDetail/__test__/index.test.js +43 -38
  285. package/src/screens/ScriptDetail/index.js +26 -16
  286. package/src/screens/SelectUnit/__test__/index.test.js +4 -3
  287. package/src/screens/SelectUnit/index.js +3 -3
  288. package/src/screens/SetSchedule/index.js +1 -1
  289. package/src/screens/Sharing/Components/{SensorItem.js → DeviceItem.js} +16 -22
  290. package/src/screens/Sharing/Components/Styles/{SensorItemStyles.js → DeviceItemStyles.js} +0 -0
  291. package/src/screens/Sharing/Components/__test__/{SensorItem.test.js → DeviceItem.test.js} +10 -8
  292. package/src/screens/Sharing/Components/index.js +2 -2
  293. package/src/screens/Sharing/InfoMemberUnit.js +7 -6
  294. package/src/screens/Sharing/MemberList.js +4 -4
  295. package/src/screens/Sharing/SelectPermission.js +72 -72
  296. package/src/screens/Sharing/SelectUser.js +9 -5
  297. package/src/screens/Sharing/Styles/SelectPermissionStyles.js +2 -2
  298. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +3 -2
  299. package/src/screens/Sharing/__test__/SelectPermission.test.js +12 -12
  300. package/src/screens/Sharing/__test__/SelectUser.test.js +7 -4
  301. package/src/screens/SideMenuDetail/__test__/index.test.js +11 -7
  302. package/src/screens/SideMenuDetail/index.js +2 -2
  303. package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +4 -2
  304. package/src/screens/SmartIr/__test__/SelectDeviceType.test.js +5 -5
  305. package/src/screens/SmartIr/__test__/SmartIr.test.js +14 -6
  306. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +4 -2
  307. package/src/screens/SmartIr/components/{SelectDeviceType.js → SelectIrDeviceType.js} +2 -2
  308. package/src/screens/SmartIr/index.js +1 -1
  309. package/src/screens/SubUnit/AddSubUnit.js +7 -3
  310. package/src/screens/SubUnit/Detail.js +6 -6
  311. package/src/screens/SubUnit/EditSubUnit.js +10 -6
  312. package/src/screens/SubUnit/ManageSubUnit.js +2 -2
  313. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +6 -3
  314. package/src/screens/SubUnit/__test__/Detail.test.js +5 -3
  315. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +9 -5
  316. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +3 -2
  317. package/src/screens/SyncLGDevice/AddLGDevice.js +4 -4
  318. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +7 -4
  319. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +4 -2
  320. package/src/screens/TDSGuide/index.js +2 -2
  321. package/src/screens/Template/EditTemplate.js +152 -0
  322. package/src/screens/Template/GatewayList.js +51 -0
  323. package/src/screens/Template/Information.js +41 -0
  324. package/src/screens/Template/Styles/EditTemplateStyle.js +109 -0
  325. package/src/screens/Template/Styles/GatewayStyles.js +46 -0
  326. package/src/screens/Template/Styles/InformationStyles.js +16 -0
  327. package/src/screens/Template/Styles/detailStyles.js +35 -0
  328. package/src/screens/Template/Styles/indexStyles.js +2 -33
  329. package/src/screens/Template/__test__/EditTemplate.test.js +89 -0
  330. package/src/screens/Template/__test__/GatewayList.test.js +26 -0
  331. package/src/screens/Template/__test__/Information.test.js +16 -0
  332. package/src/screens/Template/__test__/detail.test.js +68 -0
  333. package/src/screens/Template/__test__/index.test.js +26 -1
  334. package/src/screens/Template/detail.js +154 -0
  335. package/src/screens/Template/index.js +38 -32
  336. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +3 -2
  337. package/src/screens/UVIndexGuide/index.js +2 -2
  338. package/src/screens/Unit/AddMenu.js +6 -20
  339. package/src/screens/Unit/ChooseLocation.js +1 -1
  340. package/src/screens/Unit/Detail.js +10 -10
  341. package/src/screens/Unit/ManageUnit.js +21 -15
  342. package/src/screens/Unit/MyAllUnit/index.js +1 -1
  343. package/src/screens/Unit/SelectAddToFavorites.js +7 -8
  344. package/src/screens/Unit/SelectAddress.js +4 -4
  345. package/src/screens/Unit/SmartAccount.js +1 -1
  346. package/src/screens/Unit/SmartAccountItem.js +3 -3
  347. package/src/screens/Unit/Station/__test__/index.test.js +19 -3
  348. package/src/screens/Unit/Station/index.js +2 -2
  349. package/src/screens/Unit/Summaries.js +2 -2
  350. package/src/screens/Unit/__test__/CheckSendEmail.test.js +6 -6
  351. package/src/screens/Unit/__test__/Detail.test.js +90 -55
  352. package/src/screens/Unit/__test__/ManageUnit.test.js +40 -18
  353. package/src/screens/Unit/__test__/SelectAddress.test.js +15 -8
  354. package/src/screens/Unit/__test__/SmartAccount.test.js +42 -25
  355. package/src/screens/Unit/__test__/SmartAccountItem.test.js +4 -3
  356. package/src/screens/Unit/components/AutomateScript/index.js +5 -2
  357. package/src/screens/Unit/components/ListMyAllUnit/index.js +1 -1
  358. package/src/screens/Unit/components/MyAllUnit/__test__/Header.test.js +9 -5
  359. package/src/screens/Unit/components/MyAllUnit/index.js +1 -1
  360. package/src/screens/Unit/components/MyUnitDevice/index.js +8 -5
  361. package/src/screens/Unit/components/SharedUnit/index.js +12 -6
  362. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
  363. package/src/screens/Unit/components/__test__/SharedUnit.test.js +24 -9
  364. package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +25 -11
  365. package/src/screens/UnitSummary/__test__/index.test.js +4 -2
  366. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +4 -2
  367. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -2
  368. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +4 -2
  369. package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -2
  370. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +5 -4
  371. package/src/screens/UnitSummary/components/RunningDevices/index.js +6 -3
  372. package/src/screens/UnitSummary/components/TotalPowerBox/index.js +2 -2
  373. package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -2
  374. package/src/screens/UnitSummary/components/__test__/TotalPowerBox.test.js +3 -2
  375. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +4 -2
  376. package/src/screens/UnitSummary/index.js +10 -8
  377. package/src/screens/WaterQualityGuide/__test__/index.test.js +17 -12
  378. package/src/screens/WaterQualityGuide/index.js +26 -10
  379. package/src/utils/Apis/axios.js +1 -0
  380. package/src/utils/I18n/translations/en.json +20 -10
  381. package/src/utils/I18n/translations/vi.json +17 -9
  382. package/src/utils/Route/index.js +22 -10
  383. package/src/utils/Utils.js +6 -7
  384. package/src/commons/Connecting/index.js +0 -67
  385. package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +0 -28
  386. package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +0 -41
  387. package/src/commons/ConnectingProcess/__test__/Connecting.test.js +0 -163
  388. package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +0 -19
  389. package/src/commons/ConnectingProcess/index.js +0 -213
  390. package/src/commons/ConnectingProcess/styles.js +0 -69
  391. package/src/hooks/IoT/useGGHomeConnection.js +0 -91
  392. package/src/iot/RemoteControl/index.js +0 -55
  393. package/src/screens/AddNewDevice/ConnectDevices.js +0 -184
  394. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +0 -131
  395. package/src/screens/AddNewGateway/ConnectedGateway.js +0 -139
  396. package/src/screens/AddNewGateway/ConnectingGateway.js +0 -137
  397. package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +0 -214
  398. package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +0 -319
  399. package/src/screens/AddNewGateway/PlugAndPlay/__test__/ConnectWifiWarning.test.js +0 -75
  400. package/src/screens/AddNewGateway/PlugAndPlay/__test__/GatewayWifiList.test.js +0 -130
  401. package/src/screens/AddNewGateway/SelectGateway.js +0 -133
  402. package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -207
  403. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +0 -71
  404. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +0 -96
  405. package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +0 -120
  406. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +0 -115
  407. package/src/screens/ScanChipQR/hooks/index.js +0 -120
  408. package/src/screens/ScanChipQR/index.js +0 -29
  409. package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +0 -111
  410. package/src/screens/ScanSensorQR/hooks/index.js +0 -40
  411. package/src/screens/ScanSensorQR/index.js +0 -39
@@ -9,7 +9,7 @@ import { IconOutline } from '@ant-design/icons-react-native';
9
9
  import CircleButton from './component/CircleButton';
10
10
  import RectangleButton from './component/RectangleButton';
11
11
  import ControlPlay from './component/ControlPlay';
12
- import { TESTID } from '../../../configs/Constants';
12
+ import { AccessibilityLabel } from '../../../configs/Constants';
13
13
  import { useTranslations } from '../../../hooks/Common/useTranslations';
14
14
 
15
15
  import {
@@ -109,13 +109,17 @@ const SmartTiviActionTemplate = memo(
109
109
  />
110
110
  }
111
111
  onPress={onPressButton(SMART_TIVI_BUTTON.ONOFF_BUTTON)}
112
- testID={TESTID.SMART_TIVI_TEMPLATE.ONOFF_BUTTON}
112
+ accessibilityLabel={
113
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.ONOFF_BUTTON
114
+ }
113
115
  />
114
116
  <CircleButton
115
117
  type="small"
116
118
  icon={<SvgInput size={20} style={styles.iconButtonExit} />}
117
119
  onPress={onPressButton(SMART_TIVI_BUTTON.EXIT_BUTTON)}
118
- testID={TESTID.SMART_TIVI_TEMPLATE.EXIT_BUTTON}
120
+ accessibilityLabel={
121
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.EXIT_BUTTON
122
+ }
119
123
  />
120
124
  </View>
121
125
  <View style={styles.controlDevice}>
@@ -126,7 +130,9 @@ const SmartTiviActionTemplate = memo(
126
130
  onPressDown={onPressButton(
127
131
  SMART_TIVI_BUTTON.VOLUME_DOWN_BUTTON
128
132
  )}
129
- testID={TESTID.SMART_TIVI_TEMPLATE.VOLUME_BUTTON}
133
+ accessibilityLabel={
134
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.VOLUME_BUTTON
135
+ }
130
136
  />
131
137
  <CircleButton
132
138
  type="big"
@@ -136,7 +142,9 @@ const SmartTiviActionTemplate = memo(
136
142
  onPressLeft={onPressButton(SMART_TIVI_BUTTON.LEFT_BUTTON)}
137
143
  onPressRight={onPressButton(SMART_TIVI_BUTTON.RIGHT_BUTTON)}
138
144
  onPressOk={onPressButton(SMART_TIVI_BUTTON.OK_BUTTON)}
139
- testID={TESTID.SMART_TIVI_TEMPLATE.BIG_BUTTON}
145
+ accessibilityLabel={
146
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.BIG_BUTTON
147
+ }
140
148
  />
141
149
  <RectangleButton
142
150
  type="column"
@@ -147,7 +155,9 @@ const SmartTiviActionTemplate = memo(
147
155
  }
148
156
  onPressUp={onPressButton(SMART_TIVI_BUTTON.CH_UP)}
149
157
  onPressDown={onPressButton(SMART_TIVI_BUTTON.CH_DOWN)}
150
- testID={TESTID.SMART_TIVI_TEMPLATE.CH_BUTTON}
158
+ accessibilityLabel={
159
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_BUTTON
160
+ }
151
161
  />
152
162
  </View>
153
163
  <View style={styles.controlPlay}>
@@ -155,7 +165,9 @@ const SmartTiviActionTemplate = memo(
155
165
  onPressPrev={onPressButton(SMART_TIVI_BUTTON.PREV_BUTTON)}
156
166
  onPressStop={onPressButton(SMART_TIVI_BUTTON.STOP_BUTTON)}
157
167
  onPressNext={onPressButton(SMART_TIVI_BUTTON.NEXT_BUTTON)}
158
- testID={TESTID.SMART_TIVI_TEMPLATE.CONTROL_BUTTON}
168
+ accessibilityLabel={
169
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CONTROL_BUTTON
170
+ }
159
171
  />
160
172
  </View>
161
173
  <View style={styles.controlHome}>
@@ -163,13 +175,17 @@ const SmartTiviActionTemplate = memo(
163
175
  type="row"
164
176
  onPress={onPressButton(SMART_TIVI_BUTTON.HOME_BUTTON)}
165
177
  icon={<Home />}
166
- testID={TESTID.SMART_TIVI_TEMPLATE.HOME_BUTTON}
178
+ accessibilityLabel={
179
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.HOME_BUTTON
180
+ }
167
181
  />
168
182
  <RectangleButton
169
183
  type="row"
170
184
  onPress={onPressButton(SMART_TIVI_BUTTON.BACK_BUTTON)}
171
185
  icon={<KeyboardReturn />}
172
- testID={TESTID.SMART_TIVI_TEMPLATE.BACK_BUTTON}
186
+ accessibilityLabel={
187
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.BACK_BUTTON
188
+ }
173
189
  />
174
190
  </View>
175
191
  <View style={styles.channelTV}>
@@ -4,7 +4,7 @@ import ControlPlay from '../component/ControlPlay';
4
4
  import { SCProvider } from '../../../../context';
5
5
  import { mockSCStore } from '../../../../context/mockStore';
6
6
  import { TouchableOpacity } from 'react-native';
7
- import { TESTID } from '../../../../configs/Constants';
7
+ import { AccessibilityLabel } from '../../../../configs/Constants';
8
8
 
9
9
  const wrapComponent = (onPressPrev, onPressStop, onPressNext) => (
10
10
  <SCProvider initState={mockSCStore({})}>
@@ -41,7 +41,8 @@ describe('Test ControlPlay', () => {
41
41
 
42
42
  const PrevButton = instance.find(
43
43
  (el) =>
44
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.PREV_BUTTON &&
44
+ el.props.accessibilityLabel ===
45
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.PREV_BUTTON &&
45
46
  el.type === TouchableOpacity
46
47
  );
47
48
  expect(PrevButton).toBeDefined();
@@ -57,7 +58,8 @@ describe('Test ControlPlay', () => {
57
58
 
58
59
  const PrevButton = instance.find(
59
60
  (el) =>
60
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.PREV_BUTTON &&
61
+ el.props.accessibilityLabel ===
62
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.PREV_BUTTON &&
61
63
  el.type === TouchableOpacity
62
64
  );
63
65
  expect(PrevButton).toBeDefined();
@@ -76,7 +78,8 @@ describe('Test ControlPlay', () => {
76
78
 
77
79
  const StopButton = instance.find(
78
80
  (el) =>
79
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.STOP_BUTTON &&
81
+ el.props.accessibilityLabel ===
82
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.STOP_BUTTON &&
80
83
  el.type === TouchableOpacity
81
84
  );
82
85
  expect(StopButton).toBeDefined();
@@ -92,7 +95,8 @@ describe('Test ControlPlay', () => {
92
95
 
93
96
  const StopButton = instance.find(
94
97
  (el) =>
95
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.STOP_BUTTON &&
98
+ el.props.accessibilityLabel ===
99
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.STOP_BUTTON &&
96
100
  el.type === TouchableOpacity
97
101
  );
98
102
  expect(StopButton).toBeDefined();
@@ -111,7 +115,8 @@ describe('Test ControlPlay', () => {
111
115
 
112
116
  const NextButton = instance.find(
113
117
  (el) =>
114
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.NEXT_BUTTON &&
118
+ el.props.accessibilityLabel ===
119
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.NEXT_BUTTON &&
115
120
  el.type === TouchableOpacity
116
121
  );
117
122
  expect(NextButton).toBeDefined();
@@ -127,7 +132,8 @@ describe('Test ControlPlay', () => {
127
132
 
128
133
  const NextButton = instance.find(
129
134
  (el) =>
130
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.NEXT_BUTTON &&
135
+ el.props.accessibilityLabel ===
136
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.NEXT_BUTTON &&
131
137
  el.type === TouchableOpacity
132
138
  );
133
139
  expect(NextButton).toBeDefined();
@@ -4,7 +4,7 @@ import RectangleButton from '../component/RectangleButton';
4
4
  import { SCProvider } from '../../../../context';
5
5
  import { mockSCStore } from '../../../../context/mockStore';
6
6
  import { TouchableOpacity } from 'react-native';
7
- import { TESTID } from '../../../../configs/Constants';
7
+ import { AccessibilityLabel } from '../../../../configs/Constants';
8
8
 
9
9
  const wrapComponent = (type, onPress, onPressUp, onPressDown, icon) => (
10
10
  <SCProvider initState={mockSCStore({})}>
@@ -45,7 +45,8 @@ describe('Test RectangleButton', () => {
45
45
 
46
46
  const RectangleButtonUp = instance.find(
47
47
  (el) =>
48
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON &&
48
+ el.props.accessibilityLabel ===
49
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON &&
49
50
  el.type === TouchableOpacity
50
51
  );
51
52
  expect(RectangleButtonUp).toBeDefined();
@@ -62,7 +63,8 @@ describe('Test RectangleButton', () => {
62
63
 
63
64
  const RectangleButtonUp = instance.find(
64
65
  (el) =>
65
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON &&
66
+ el.props.accessibilityLabel ===
67
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON &&
66
68
  el.type === TouchableOpacity
67
69
  );
68
70
  expect(RectangleButtonUp).toBeDefined();
@@ -82,7 +84,8 @@ describe('Test RectangleButton', () => {
82
84
 
83
85
  const RectangleButtonDown = instance.find(
84
86
  (el) =>
85
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON &&
87
+ el.props.accessibilityLabel ===
88
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON &&
86
89
  el.type === TouchableOpacity
87
90
  );
88
91
  expect(RectangleButtonDown).toBeDefined();
@@ -99,7 +102,8 @@ describe('Test RectangleButton', () => {
99
102
 
100
103
  const RectangleButtonDown = instance.find(
101
104
  (el) =>
102
- el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON &&
105
+ el.props.accessibilityLabel ===
106
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON &&
103
107
  el.type === TouchableOpacity
104
108
  );
105
109
  expect(RectangleButtonDown).toBeDefined();
@@ -4,7 +4,7 @@ import SmartTiviActionTemplate from '../SmartTiviActionTemplate';
4
4
  import { SCProvider } from '../../../../context';
5
5
  import { mockSCStore } from '../../../../context/mockStore';
6
6
  import { ScrollView } from 'react-native';
7
- import { TESTID } from '../../../../configs/Constants';
7
+ import { AccessibilityLabel } from '../../../../configs/Constants';
8
8
 
9
9
  const wrapComponent = (actionGroup, doAction) => (
10
10
  <SCProvider initState={mockSCStore({})}>
@@ -28,7 +28,9 @@ describe('Test SmartTiviActionTemplate', () => {
28
28
  });
29
29
  const instance = wrapper.root;
30
30
  const circleButtonOnOff = instance.find(
31
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.ONOFF_BUTTON
31
+ (el) =>
32
+ el.props.accessibilityLabel ===
33
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.ONOFF_BUTTON
32
34
  );
33
35
  expect(circleButtonOnOff).toBeDefined();
34
36
  await act(() => {
@@ -36,7 +38,9 @@ describe('Test SmartTiviActionTemplate', () => {
36
38
  });
37
39
 
38
40
  const circleButtonExit = instance.find(
39
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.EXIT_BUTTON
41
+ (el) =>
42
+ el.props.accessibilityLabel ===
43
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.EXIT_BUTTON
40
44
  );
41
45
  expect(circleButtonExit).toBeDefined();
42
46
  // expect(circleButton).toHaveLength(2);
@@ -51,7 +55,9 @@ describe('Test SmartTiviActionTemplate', () => {
51
55
  });
52
56
  const instance = wrapper.root;
53
57
  const RectangleButtonVolume = instance.find(
54
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.VOLUME_BUTTON
58
+ (el) =>
59
+ el.props.accessibilityLabel ===
60
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.VOLUME_BUTTON
55
61
  );
56
62
  expect(RectangleButtonVolume).toBeDefined();
57
63
  await act(() => {
@@ -61,7 +67,9 @@ describe('Test SmartTiviActionTemplate', () => {
61
67
  RectangleButtonVolume.props.onPressDown();
62
68
  });
63
69
  const RectangleButtonCH = instance.find(
64
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CH_BUTTON
70
+ (el) =>
71
+ el.props.accessibilityLabel ===
72
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_BUTTON
65
73
  );
66
74
  expect(RectangleButtonCH).toBeDefined();
67
75
  await act(() => {
@@ -77,7 +85,9 @@ describe('Test SmartTiviActionTemplate', () => {
77
85
  });
78
86
  const instance = wrapper.root;
79
87
  const CircleButtonBig = instance.find(
80
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.BIG_BUTTON
88
+ (el) =>
89
+ el.props.accessibilityLabel ===
90
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.BIG_BUTTON
81
91
  );
82
92
  expect(CircleButtonBig).toBeDefined();
83
93
  await act(() => {
@@ -102,7 +112,9 @@ describe('Test SmartTiviActionTemplate', () => {
102
112
  });
103
113
  const instance = wrapper.root;
104
114
  const ControlPlay = instance.find(
105
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.CONTROL_BUTTON
115
+ (el) =>
116
+ el.props.accessibilityLabel ===
117
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CONTROL_BUTTON
106
118
  );
107
119
  expect(ControlPlay).toBeDefined();
108
120
  await act(() => {
@@ -121,7 +133,9 @@ describe('Test SmartTiviActionTemplate', () => {
121
133
  });
122
134
  const instance = wrapper.root;
123
135
  const controlHome = instance.find(
124
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.HOME_BUTTON
136
+ (el) =>
137
+ el.props.accessibilityLabel ===
138
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.HOME_BUTTON
125
139
  );
126
140
  expect(controlHome).toBeDefined();
127
141
  await act(() => {
@@ -134,7 +148,9 @@ describe('Test SmartTiviActionTemplate', () => {
134
148
  });
135
149
  const instance = wrapper.root;
136
150
  const controlBack = instance.find(
137
- (el) => el.props.testID === TESTID.SMART_TIVI_TEMPLATE.BACK_BUTTON
151
+ (el) =>
152
+ el.props.accessibilityLabel ===
153
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.BACK_BUTTON
138
154
  );
139
155
  expect(controlBack).toBeDefined();
140
156
  await act(() => {
@@ -4,7 +4,7 @@ import styles from './CircleButtonStyles';
4
4
  import Text from '../../../Text';
5
5
  import { Colors, Images } from '../../../../configs';
6
6
  import { IconOutline } from '@ant-design/icons-react-native';
7
- import { TESTID } from '../../../../configs/Constants';
7
+ import { AccessibilityLabel } from '../../../../configs/Constants';
8
8
 
9
9
  const CircleButton = memo(
10
10
  ({
@@ -42,7 +42,9 @@ const CircleButton = memo(
42
42
  <TouchableOpacity
43
43
  style={[styles.upButton, styles.padding16]}
44
44
  onPress={onPressUp}
45
- testID={TESTID.SMART_TIVI_TEMPLATE.UP_BUTTON}
45
+ accessibilityLabel={
46
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.UP_BUTTON
47
+ }
46
48
  >
47
49
  <IconOutline size={14} name={'caret-up'} />
48
50
  </TouchableOpacity>
@@ -51,14 +53,18 @@ const CircleButton = memo(
51
53
  <TouchableOpacity
52
54
  style={[styles.leftButton, styles.padding16]}
53
55
  onPress={onPressLeft}
54
- testID={TESTID.SMART_TIVI_TEMPLATE.LEFT_BUTTON}
56
+ accessibilityLabel={
57
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.LEFT_BUTTON
58
+ }
55
59
  >
56
60
  <IconOutline size={14} name={'caret-left'} />
57
61
  </TouchableOpacity>
58
62
  <TouchableOpacity
59
63
  style={[styles.okButton]}
60
64
  onPress={onPressOk}
61
- testID={TESTID.SMART_TIVI_TEMPLATE.OK_BUTTON}
65
+ accessibilityLabel={
66
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.OK_BUTTON
67
+ }
62
68
  >
63
69
  <Text type="H4" color={Colors.Gray9} bold>
64
70
  OK
@@ -67,7 +73,9 @@ const CircleButton = memo(
67
73
  <TouchableOpacity
68
74
  style={[styles.rightButton, styles.padding16]}
69
75
  onPress={onPressRight}
70
- testID={TESTID.SMART_TIVI_TEMPLATE.RIGHT_BUTTON}
76
+ accessibilityLabel={
77
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.RIGHT_BUTTON
78
+ }
71
79
  >
72
80
  <IconOutline size={14} name={'caret-right'} />
73
81
  </TouchableOpacity>
@@ -76,7 +84,9 @@ const CircleButton = memo(
76
84
  <TouchableOpacity
77
85
  style={[styles.downButton, styles.padding16]}
78
86
  onPress={onPressDown}
79
- testID={TESTID.SMART_TIVI_TEMPLATE.DOWN_BUTTON}
87
+ accessibilityLabel={
88
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.DOWN_BUTTON
89
+ }
80
90
  >
81
91
  <IconOutline size={14} name={'caret-down'} />
82
92
  </TouchableOpacity>
@@ -4,7 +4,7 @@ import { Colors } from '../../../../configs';
4
4
 
5
5
  import styles from './ControlPlayStyles';
6
6
  import { Pause } from './Icon';
7
- import { TESTID } from '../../../../configs/Constants';
7
+ import { AccessibilityLabel } from '../../../../configs/Constants';
8
8
 
9
9
  import { IconOutline } from '@ant-design/icons-react-native';
10
10
 
@@ -15,7 +15,9 @@ const ControlPlay = memo(
15
15
  <TouchableOpacity
16
16
  style={[styles.controlButton, styles.controlPrev]}
17
17
  onPress={onPressPrev}
18
- testID={TESTID.SMART_TIVI_TEMPLATE.PREV_BUTTON}
18
+ accessibilityLabel={
19
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.PREV_BUTTON
20
+ }
19
21
  >
20
22
  <IconOutline
21
23
  size={32}
@@ -27,14 +29,18 @@ const ControlPlay = memo(
27
29
  <TouchableOpacity
28
30
  style={[styles.controlButton, styles.controlStop]}
29
31
  onPress={onPressStop}
30
- testID={TESTID.SMART_TIVI_TEMPLATE.STOP_BUTTON}
32
+ accessibilityLabel={
33
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.STOP_BUTTON
34
+ }
31
35
  >
32
36
  <Pause size={48} />
33
37
  </TouchableOpacity>
34
38
  <TouchableOpacity
35
39
  style={[styles.controlButton, styles.controlNext]}
36
40
  onPress={onPressNext}
37
- testID={TESTID.SMART_TIVI_TEMPLATE.NEXT_BUTTON}
41
+ accessibilityLabel={
42
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.NEXT_BUTTON
43
+ }
38
44
  >
39
45
  <IconOutline
40
46
  size={32}
@@ -3,7 +3,7 @@ import { TouchableOpacity, View } from 'react-native';
3
3
 
4
4
  import styles from './RectangleButtonStyles';
5
5
  import { KeyboardArrowUp, KeyboardArrowDown } from './Icon';
6
- import { TESTID } from '../../../../configs/Constants';
6
+ import { AccessibilityLabel } from '../../../../configs/Constants';
7
7
 
8
8
  const RectangleButton = memo(
9
9
  ({ icon, onPressUp, onPressDown, wrapStyle, type, onPress }) => {
@@ -22,7 +22,9 @@ const RectangleButton = memo(
22
22
  <TouchableOpacity
23
23
  style={[styles.rectangleColumn]}
24
24
  onPress={onPressUp}
25
- testID={TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON}
25
+ accessibilityLabel={
26
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_UP_BUTTON
27
+ }
26
28
  >
27
29
  <KeyboardArrowUp size={24} name={'up'} style={styles.padding8} />
28
30
  </TouchableOpacity>
@@ -30,7 +32,9 @@ const RectangleButton = memo(
30
32
  <TouchableOpacity
31
33
  style={[styles.rectangleColumn]}
32
34
  onPress={onPressDown}
33
- testID={TESTID.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON}
35
+ accessibilityLabel={
36
+ AccessibilityLabel.SMART_TIVI_TEMPLATE.CH_VOLUME_DOWN_BUTTON
37
+ }
34
38
  >
35
39
  <KeyboardArrowDown
36
40
  size={24}
@@ -8,7 +8,7 @@ import { useUnwatchLGDeviceConfigControl } from '../../hooks/IoT';
8
8
  import { watchMultiConfigs } from '../../iot/Monitor';
9
9
  import IconComponent from '../IconComponent';
10
10
  import styles from './StatesGridActionTemplateStyle';
11
- import { DEVICE_TYPE, TESTID } from '../../configs/Constants';
11
+ import { DEVICE_TYPE, AccessibilityLabel } from '../../configs/Constants';
12
12
  import SvgClean from '../../../assets/images/Device/clean.svg';
13
13
  import SvgCirculator from '../../../assets/images/Device/circulator.svg';
14
14
  import SvgAuo from '../../../assets/images/Device/auto.svg';
@@ -34,20 +34,34 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
34
34
  icon_outlined,
35
35
  action_data,
36
36
  config,
37
+ is_on_value,
38
+ allow_config_store_value,
37
39
  } = item;
38
40
  const buttonOnOffStyle = active ? buttonStyle.ON : buttonStyle.OFF;
39
41
  const checkIcon = /\d/.test(icon); // to do check icon svg and icon antDesign
40
-
41
42
  const doActionAndWatchConfig = useCallback(
42
43
  (actionData) => {
43
- doAction(actionData, null);
44
+ let data = {};
45
+ if (allow_config_store_value && config) {
46
+ data = JSON.stringify({ config_id: config, config_value: is_on_value });
47
+ } else {
48
+ data = null;
49
+ }
50
+ doAction(actionData, data);
44
51
  if (sensor?.is_managed_by_backend) {
45
- config &&
46
- sensor.device_type === DEVICE_TYPE.LG_THINQ &&
52
+ if (config && sensor.device_type === DEVICE_TYPE.LG_THINQ) {
47
53
  watchMultiConfigs([config]);
54
+ }
48
55
  }
49
56
  },
50
- [config, doAction, sensor?.is_managed_by_backend, sensor.device_type]
57
+ [
58
+ allow_config_store_value,
59
+ config,
60
+ doAction,
61
+ sensor?.is_managed_by_backend,
62
+ sensor.device_type,
63
+ is_on_value,
64
+ ]
51
65
  );
52
66
 
53
67
  useUnwatchLGDeviceConfigControl(sensor, [config]);
@@ -72,7 +86,7 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
72
86
  return (
73
87
  <View
74
88
  style={[styles.gridItem]}
75
- testID={TESTID.STATES_GRID_ACTION_GRID_ITEM}
89
+ accessibilityLabel={AccessibilityLabel.STATES_GRID_ACTION_GRID_ITEM}
76
90
  >
77
91
  <TouchableOpacity
78
92
  style={[styles.button, buttonOnOffStyle]}
@@ -1,15 +1,12 @@
1
1
  import React, { memo, useCallback, useState } from 'react';
2
2
  import { TouchableOpacity, View, Switch } from 'react-native';
3
3
  import { Icon } from '@ant-design/react-native';
4
- import { useTranslations } from '../../hooks/Common/useTranslations';
5
4
  import styles from './ThreeButtonTemplateStyle';
6
5
  import Text from '../Text';
7
- import { TESTID } from '../../configs/Constants';
6
+ import { AccessibilityLabel } from '../../configs/Constants';
8
7
  import { Colors } from '../../configs';
9
- import { Card } from '../../commons/CardShadow';
10
8
 
11
- const ThreeButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
12
- const t = useTranslations();
9
+ const ThreeButtonTemplate = memo(({ actionGroup, doAction }) => {
13
10
  const { configuration } = actionGroup;
14
11
  const {
15
12
  text1,
@@ -20,7 +17,12 @@ const ThreeButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
20
17
  action3_data,
21
18
  action_off_data,
22
19
  action_on_data,
23
- } = configuration;
20
+ icon1,
21
+ icon2,
22
+ icon3,
23
+ text_door_lock,
24
+ is_display_lock,
25
+ } = configuration || {};
24
26
  const [lock, setLock] = useState(false);
25
27
  const iconCustom = (icon) => {
26
28
  return icon === 'stop' ? (
@@ -58,9 +60,9 @@ const ThreeButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
58
60
  <Icon name={icon} size={15} color={color} style={styles.iconLock} />
59
61
  <Text
60
62
  style={styles.textLockDoor}
61
- testID={TESTID.TEXT_DOOR_LOOK_ON_OFF}
63
+ accessibilityLabel={AccessibilityLabel.TEXT_DOOR_LOOK_ON_OFF}
62
64
  >
63
- {configuration.text_door_lock}{' '}
65
+ {`${text_door_lock} `}
64
66
  </Text>
65
67
  </View>
66
68
  <Switch
@@ -75,60 +77,48 @@ const ThreeButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
75
77
  };
76
78
  return (
77
79
  <>
78
- <Card title={actionGroup.title ? actionGroup.title : t('controller')}>
79
- <View style={styles.wrap}>
80
- <TouchableOpacity
81
- testID={TESTID.BUTTON_TEMPLATE_1}
82
- style={styles.buttonActionDoor}
83
- onPress={onButton1Press}
84
- underlayColor={Colors.Gray2}
85
- >
86
- <View style={styles.imageButton}>
87
- <Icon
88
- name={configuration.icon1}
89
- size={30}
90
- color={Colors.Primary}
91
- />
92
- </View>
93
- <Text style={styles.text}>{text1}</Text>
94
- </TouchableOpacity>
80
+ <View style={styles.wrap}>
81
+ <TouchableOpacity
82
+ accessibilityLabel={AccessibilityLabel.BUTTON_TEMPLATE_1}
83
+ style={styles.buttonActionDoor}
84
+ onPress={onButton1Press}
85
+ underlayColor={Colors.Gray2}
86
+ >
87
+ <View style={styles.imageButton}>
88
+ <Icon name={icon1} size={30} color={Colors.Primary} />
89
+ </View>
90
+ <Text style={styles.text}>{text1}</Text>
91
+ </TouchableOpacity>
95
92
 
96
- <TouchableOpacity
97
- testID={TESTID.BUTTON_TEMPLATE_2}
98
- style={styles.buttonActionDoor}
99
- onPress={onButton2Press}
100
- underlayColor={Colors.Gray2}
101
- >
102
- <View style={styles.imageButton}>
103
- {iconCustom(configuration.icon2)}
104
- </View>
105
- <Text style={styles.text}>{text2}</Text>
106
- </TouchableOpacity>
93
+ <TouchableOpacity
94
+ accessibilityLabel={AccessibilityLabel.BUTTON_TEMPLATE_2}
95
+ style={styles.buttonActionDoor}
96
+ onPress={onButton2Press}
97
+ underlayColor={Colors.Gray2}
98
+ >
99
+ <View style={styles.imageButton}>{iconCustom(icon2)}</View>
100
+ <Text style={styles.text}>{text2}</Text>
101
+ </TouchableOpacity>
107
102
 
108
- <TouchableOpacity
109
- testID={TESTID.BUTTON_TEMPLATE_3}
110
- style={styles.buttonActionDoor}
111
- onPress={onButton3Press}
112
- underlayColor={Colors.Gray2}
113
- >
114
- <View style={styles.imageButton}>
115
- <Icon
116
- name={configuration.icon3}
117
- size={30}
118
- color={Colors.Primary}
119
- />
120
- </View>
121
- <Text style={styles.text}>{text3}</Text>
122
- </TouchableOpacity>
123
- </View>
124
- <View style={styles.lockSwitch}>
125
- {configuration.is_display_lock &&
126
- itemLock(
127
- lock ? 'lock' : 'unlock',
128
- lock ? Colors.Primary : Colors.Gray6
129
- )}
130
- </View>
131
- </Card>
103
+ <TouchableOpacity
104
+ accessibilityLabel={AccessibilityLabel.BUTTON_TEMPLATE_3}
105
+ style={styles.buttonActionDoor}
106
+ onPress={onButton3Press}
107
+ underlayColor={Colors.Gray2}
108
+ >
109
+ <View style={styles.imageButton}>
110
+ <Icon name={icon3} size={30} color={Colors.Primary} />
111
+ </View>
112
+ <Text style={styles.text}>{text3}</Text>
113
+ </TouchableOpacity>
114
+ </View>
115
+ <View style={styles.lockSwitch}>
116
+ {is_display_lock &&
117
+ itemLock(
118
+ lock ? 'lock' : 'unlock',
119
+ lock ? Colors.Primary : Colors.Gray6
120
+ )}
121
+ </View>
132
122
  </>
133
123
  );
134
124
  });