@eohjsc/react-native-smart-city 0.3.4 → 0.3.7

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 (293) hide show
  1. package/README.md +15 -36
  2. package/package.json +5 -9
  3. package/react-native-smart-city.podspec +0 -1
  4. package/src/commons/Action/ItemQuickAction.js +4 -16
  5. package/src/commons/Action/__test__/ItemQuickAction.test.js +6 -11
  6. package/src/commons/ActionGroup/ColorPickerTemplate.js +24 -37
  7. package/src/commons/ActionGroup/CurtainButtonTemplate.js +5 -10
  8. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +31 -12
  9. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +0 -4
  10. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/ItemPasscode.js +1 -1
  11. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +0 -14
  12. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/index.js +0 -1
  13. package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +2 -8
  14. package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +10 -10
  15. package/src/commons/ActionGroup/OnOffTemplate/index.js +2 -3
  16. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +9 -7
  17. package/src/commons/ActionGroup/SliderRangeTemplate.js +2 -6
  18. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +3 -7
  19. package/src/commons/ActionGroup/StatesGridActionTemplate.js +8 -22
  20. package/src/commons/ActionGroup/TimerActionTemplate.js +3 -11
  21. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +5 -1
  22. package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +4 -53
  23. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +83 -3
  24. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +14 -14
  25. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +78 -53
  26. package/src/commons/ActionGroup/__test__/OneBigButtonTemplate.test.js +20 -36
  27. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +57 -1
  28. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -58
  29. package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -49
  30. package/src/commons/ActionGroup/__test__/index.test.js +4 -142
  31. package/src/commons/Auth/AccountList.js +1 -1
  32. package/src/commons/Automate/ItemAutomate.js +3 -1
  33. package/src/commons/Connecting/__test__/Connecting.test.js +2 -19
  34. package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +3 -7
  35. package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +11 -8
  36. package/src/commons/ConnectingProcess/__test__/Connecting.test.js +3 -136
  37. package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +2 -3
  38. package/src/commons/ConnectingProcess/index.js +25 -75
  39. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +13 -16
  40. package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +1 -1
  41. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +5 -0
  42. package/src/commons/Device/ConnectedViewHeader.js +1 -1
  43. package/src/commons/Device/HistoryChart.js +3 -7
  44. package/src/commons/Device/ItemDevice.js +12 -19
  45. package/src/commons/Device/LinearChart.js +0 -15
  46. package/src/commons/Device/PMSensor/PMSensorIndicatior.js +12 -16
  47. package/src/commons/Device/PMSensor/PMSensorIndicatorStyles.js +0 -3
  48. package/src/commons/Device/SonosSpeaker/index.js +1 -1
  49. package/src/commons/Device/WaterQualitySensor/ListQualityIndicator.js +0 -1
  50. package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +2 -7
  51. package/src/commons/Explore/__test__/CityItem.test.js +54 -33
  52. package/src/commons/Form/CurrencyInput.js +1 -15
  53. package/src/commons/Form/TextInputPassword.js +1 -1
  54. package/src/commons/FullLoading/index.js +1 -2
  55. package/src/commons/Header/HeaderCustom.js +1 -2
  56. package/src/commons/HeaderAni/index.js +1 -6
  57. package/src/commons/HorizontalPicker/index.js +2 -2
  58. package/src/commons/MediaPlayerDetail/Styles/MediaPlayerDetailStyles.js +6 -0
  59. package/src/commons/MediaPlayerDetail/index.js +47 -25
  60. package/src/commons/MenuActionAddnew/index.js +0 -1
  61. package/src/commons/MenuActionList/index.js +0 -1
  62. package/src/commons/MenuActionMore/index.js +1 -1
  63. package/src/commons/PreventAccess/index.js +1 -9
  64. package/src/commons/Sharing/MemberList.js +2 -10
  65. package/src/commons/Sharing/WrapHeaderScrollable.js +0 -2
  66. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +1 -0
  67. package/src/commons/SubUnit/Favorites/index.js +3 -2
  68. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +35 -8
  69. package/src/commons/SubUnit/OneTap/index.js +2 -1
  70. package/src/commons/SubUnit/ShortDetail.js +9 -25
  71. package/src/commons/SubUnit/__test__/Item.test.js +1 -0
  72. package/src/commons/SubUnit/__test__/ShortDetail.test.js +2 -9
  73. package/src/commons/Unit/SharedUnit.js +0 -1
  74. package/src/commons/Unit/__test__/SharedUnit.test.js +183 -38
  75. package/src/commons/UnitSummary/ConfigHistoryChart/index.js +13 -2
  76. package/src/commons/UnitSummary/ConfigHistoryChart.js +13 -22
  77. package/src/commons/WheelDateTimePicker/index.js +3 -4
  78. package/src/configs/API.js +143 -87
  79. package/src/configs/Constants.js +2 -57
  80. package/src/configs/SCConfig.js +0 -4
  81. package/src/context/actionType.ts +0 -8
  82. package/src/context/mockStore.ts +0 -10
  83. package/src/context/reducer.ts +2 -38
  84. package/src/hooks/Common/index.js +0 -2
  85. package/src/hooks/Common/useGetIdUser.js +5 -1
  86. package/src/hooks/Common/useSensorsStatus.js +4 -4
  87. package/src/hooks/useReceiveNotifications.js +5 -9
  88. package/src/iot/Monitor.js +2 -3
  89. package/src/iot/RemoteControl/Bluetooth.js +1 -1
  90. package/src/iot/RemoteControl/GoogleHome.js +49 -75
  91. package/src/iot/RemoteControl/Internet.js +1 -1
  92. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +48 -95
  93. package/src/iot/RemoteControl/__test__/Internet.test.js +7 -18
  94. package/src/iot/RemoteControl/__test__/LgThinq.test.js +177 -36
  95. package/src/iot/RemoteControl/index.js +52 -52
  96. package/src/navigations/UnitStack.js +20 -11
  97. package/src/screens/AQIGuide/index.js +1 -1
  98. package/src/screens/ActivityLog/FilterPopup.js +0 -2
  99. package/src/screens/ActivityLog/__test__/index.test.js +23 -38
  100. package/src/screens/ActivityLog/hooks/__test__/index.test.js +90 -51
  101. package/src/screens/ActivityLog/hooks/index.js +1 -1
  102. package/src/screens/ActivityLog/index.js +2 -2
  103. package/src/screens/AddCommon/SelectSubUnit.js +0 -1
  104. package/src/screens/AddCommon/SelectUnit.js +0 -1
  105. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +24 -13
  106. package/src/screens/AddCommon/__test__/SelectUnit.test.js +33 -9
  107. package/src/screens/AddLocationMaps/index.js +5 -9
  108. package/src/screens/AddNewAction/SelectAction.js +8 -8
  109. package/src/screens/AddNewAction/SelectSensorDevices.js +2 -8
  110. package/src/screens/AddNewAction/SetupSensor.js +7 -7
  111. package/src/screens/AddNewAction/__test__/SelectAction.test.js +91 -10
  112. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +26 -40
  113. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +1 -3
  114. package/src/screens/AddNewAutoSmart/index.js +2 -5
  115. package/src/screens/AddNewDevice/ConnectingDevices.js +3 -3
  116. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +34 -42
  117. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +4 -0
  118. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +22 -22
  119. package/src/screens/AddNewDevice/hooks/ConnectDevices.js +1 -1
  120. package/src/screens/AddNewDevice/index.js +0 -1
  121. package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +17 -23
  122. package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +4 -7
  123. package/src/screens/AddNewGateway/SelectGateway.js +0 -1
  124. package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -2
  125. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +6 -4
  126. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +4 -0
  127. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +29 -5
  128. package/src/screens/AddNewGateway/__test__/SelectGateway.test.js +4 -0
  129. package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +4 -0
  130. package/src/screens/AddNewGateway/index.js +0 -1
  131. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +24 -10
  132. package/src/screens/AddNewOneTap/index.js +2 -3
  133. package/src/screens/AllCamera/index.js +4 -4
  134. package/src/screens/Automate/MultiUnits.js +8 -8
  135. package/src/screens/Automate/__test__/MultiUnits.test.js +9 -6
  136. package/src/screens/Automate/__test__/index.test.js +12 -7
  137. package/src/screens/Automate/index.js +3 -5
  138. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +8 -36
  139. package/src/screens/ConfirmUnitDeletion/index.js +1 -7
  140. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +22 -71
  141. package/src/screens/Device/EditDevice/index.js +15 -17
  142. package/src/screens/Device/__test__/detail.test.js +86 -33
  143. package/src/screens/Device/components/DetailHistoryChart.js +1 -1
  144. package/src/screens/Device/components/SensorConnectStatusViewHeader.js +0 -1
  145. package/src/screens/Device/components/SensorDisplayItem.js +2 -5
  146. package/src/screens/Device/detail.js +24 -80
  147. package/src/screens/Device/hooks/useDisconnectedDevice.js +4 -4
  148. package/src/screens/Device/hooks/useFavoriteDevice.js +9 -5
  149. package/src/screens/DeviceInfo/__test__/index.test.js +2 -0
  150. package/src/screens/EditActionsList/index.js +1 -1
  151. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -6
  152. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +19 -7
  153. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +2 -20
  154. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +23 -40
  155. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  156. package/src/screens/EmergencySetting/index.js +1 -4
  157. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +25 -41
  158. package/src/screens/Explore/index.js +0 -2
  159. package/src/screens/GuestInfo/__test__/index.test.js +41 -14
  160. package/src/screens/GuestInfo/components/RecurringDetail.js +0 -1
  161. package/src/screens/GuestInfo/components/TemporaryDetail.js +2 -2
  162. package/src/screens/HanetCamera/Detail.js +1 -1
  163. package/src/screens/HanetCamera/__test__/CaptureFaceID.test.js +12 -8
  164. package/src/screens/HanetCamera/__test__/Detail.test.js +42 -27
  165. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +5 -8
  166. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +32 -10
  167. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -3
  168. package/src/screens/HanetCamera/hooks/__test__/useHanetCheckinData.test.js +35 -43
  169. package/src/screens/HanetCamera/hooks/__test__/useHanetPlaceMembers.test.js +21 -10
  170. package/src/screens/HanetCamera/hooks/useHanetCheckinData.js +11 -11
  171. package/src/screens/HanetCamera/hooks/useHanetPlaceMembers.js +11 -11
  172. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +22 -33
  173. package/src/screens/ManageAccess/hooks/__test__/useManageAccess.test.js +45 -44
  174. package/src/screens/ManageAccess/hooks/index.js +4 -7
  175. package/src/screens/ManageAccess/index.js +1 -2
  176. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +12 -35
  177. package/src/screens/MoveToAnotherSubUnit/index.js +6 -6
  178. package/src/screens/Notification/__test__/Notification.test.js +25 -14
  179. package/src/screens/Notification/__test__/NotificationItem.test.js +7 -8
  180. package/src/screens/Notification/components/NotificationItem.js +20 -17
  181. package/src/screens/Notification/index.js +2 -9
  182. package/src/screens/PlayBackCamera/Timer.js +2 -2
  183. package/src/screens/PlayBackCamera/__test__/index.test.js +2 -87
  184. package/src/screens/PlayBackCamera/index.js +6 -22
  185. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +20 -7
  186. package/src/screens/ScanChipQR/components/QRScan/index.js +0 -1
  187. package/src/screens/ScanChipQR/hooks/index.js +16 -15
  188. package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +24 -8
  189. package/src/screens/ScriptDetail/__test__/index.test.js +86 -17
  190. package/src/screens/ScriptDetail/index.js +14 -19
  191. package/src/screens/SelectUnit/__test__/index.test.js +55 -12
  192. package/src/screens/SelectUnit/index.js +4 -9
  193. package/src/screens/SetSchedule/index.js +11 -15
  194. package/src/screens/SharedUnit/__test__/TabHeader.test.js +2 -0
  195. package/src/screens/SharedUnit/index.js +0 -2
  196. package/src/screens/Sharing/Components/SensorItem.js +12 -10
  197. package/src/screens/Sharing/InfoMemberUnit.js +1 -1
  198. package/src/screens/Sharing/MemberList.js +11 -12
  199. package/src/screens/Sharing/SelectPermission.js +76 -121
  200. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +29 -47
  201. package/src/screens/Sharing/__test__/MemberList.test.js +127 -13
  202. package/src/screens/Sharing/__test__/SelectPermission.test.js +38 -28
  203. package/src/screens/Sharing/__test__/SelectUser.test.js +38 -17
  204. package/src/screens/Sharing/hooks/index.js +0 -3
  205. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -3
  206. package/src/screens/SmartIr/components/SelectBrand.js +1 -1
  207. package/src/screens/SubUnit/AddSubUnit.js +17 -23
  208. package/src/screens/SubUnit/Detail.js +2 -1
  209. package/src/screens/SubUnit/EditSubUnit.js +13 -15
  210. package/src/screens/SubUnit/ManageSubUnit.js +7 -13
  211. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +89 -29
  212. package/src/screens/SubUnit/__test__/Detail.test.js +8 -31
  213. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +89 -21
  214. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +1 -27
  215. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +45 -48
  216. package/src/screens/SubUnit/hooks/useManageSubUnit.js +7 -7
  217. package/src/screens/SyncLGDevice/AddLGDevice.js +0 -1
  218. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +91 -22
  219. package/src/screens/TDSGuide/index.js +1 -4
  220. package/src/screens/UVIndexGuide/index.js +1 -1
  221. package/src/screens/Unit/ChooseLocation.js +14 -7
  222. package/src/screens/Unit/Detail.js +75 -30
  223. package/src/screens/Unit/ManageUnit.js +0 -1
  224. package/src/screens/Unit/SelectAddress.js +23 -45
  225. package/src/screens/Unit/SmartAccount.js +4 -4
  226. package/src/screens/Unit/Station/index.js +0 -4
  227. package/src/screens/Unit/Summaries.js +2 -18
  228. package/src/screens/Unit/__test__/CheckSendEmail.test.js +29 -24
  229. package/src/screens/Unit/__test__/ChooseLocation.test.js +14 -27
  230. package/src/screens/Unit/__test__/Detail.test.js +200 -99
  231. package/src/screens/Unit/__test__/ManageUnit.test.js +42 -18
  232. package/src/screens/Unit/__test__/SelectAddress.test.js +49 -159
  233. package/src/screens/Unit/__test__/SmartAccount.test.js +9 -17
  234. package/src/screens/Unit/__test__/SmartAccountItem.test.js +1 -0
  235. package/src/screens/Unit/components/MyUnitDevice/index.js +4 -4
  236. package/src/screens/Unit/components/SharedUnit/index.js +0 -1
  237. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
  238. package/src/screens/Unit/components/__test__/SharedUnit.test.js +34 -31
  239. package/src/screens/Unit/styles.js +0 -4
  240. package/src/screens/UnitSummary/__test__/index.test.js +30 -91
  241. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +2 -31
  242. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/__test__/index.test.js +4 -7
  243. package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/index.js +13 -2
  244. package/src/screens/UnitSummary/components/PowerConsumption/__test__/ItemPower.test.js +1 -0
  245. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -14
  246. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -11
  247. package/src/screens/UnitSummary/components/RunningDevices/index.js +10 -7
  248. package/src/screens/UnitSummary/components/Temperature/index.js +4 -4
  249. package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +2 -10
  250. package/src/screens/UnitSummary/index.js +1 -15
  251. package/src/screens/WaterQualityGuide/index.js +1 -1
  252. package/src/utils/Apis/axios.js +31 -54
  253. package/src/utils/Converter/time.js +18 -0
  254. package/src/utils/I18n/translations/en.json +1 -7
  255. package/src/utils/I18n/translations/vi.json +1 -8
  256. package/src/utils/Route/index.js +0 -1
  257. package/src/utils/Utils.js +7 -11
  258. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/ItemPasscode.test.js +0 -24
  259. package/src/commons/ActionGroup/__test__/NumberUpDownTemplateWithNullConfigValue.test.js +0 -60
  260. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +0 -77
  261. package/src/commons/Calendar/__test__/Calendar.test.js +0 -33
  262. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +0 -58
  263. package/src/commons/FieldTemplate/ChooseUserField/ChooseFieldStyles.js +0 -25
  264. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +0 -96
  265. package/src/commons/FieldTemplate/ChooseUserField/ChoosePopupStyles.js +0 -39
  266. package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +0 -118
  267. package/src/commons/FieldTemplate/ChooseUserField/index.js +0 -62
  268. package/src/commons/FieldTemplate/PasscodeField/PasscodeFieldStyles.js +0 -30
  269. package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +0 -90
  270. package/src/commons/FieldTemplate/PasscodeField/index.js +0 -43
  271. package/src/commons/FieldTemplate/ScheduleField/ScheduleFieldStyles.js +0 -13
  272. package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +0 -179
  273. package/src/commons/FieldTemplate/ScheduleField/index.js +0 -176
  274. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +0 -62
  275. package/src/hooks/Common/useGGHomeDeviceConnected.js +0 -16
  276. package/src/hooks/IoT/__test__/useGGHomeConnection.test.js +0 -198
  277. package/src/hooks/IoT/__test__/useRemoteControl.test.js +0 -198
  278. package/src/hooks/IoT/index.js +0 -4
  279. package/src/hooks/IoT/useGGHomeConnection.js +0 -91
  280. package/src/hooks/IoT/useRemoteControl.js +0 -79
  281. package/src/hooks/index.js +0 -4
  282. package/src/navigations/UnitStackStyles.js +0 -21
  283. package/src/screens/Sharing/__test__/MemberList2.test.js +0 -80
  284. package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +0 -28
  285. package/src/screens/SideMenuDetail/__test__/index.test.js +0 -154
  286. package/src/screens/SideMenuDetail/index.js +0 -148
  287. package/src/screens/Unit/__test__/Summaries.test.js +0 -100
  288. package/src/screens/Unit/components/MyAllUnit/__test__/MyAllUnit.test.js +0 -36
  289. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -54
  290. package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +0 -50
  291. package/src/utils/Permission/common.js +0 -67
  292. package/src/utils/Setting/Location.js +0 -30
  293. package/src/utils/__test__/Utils.test.js +0 -12
@@ -20,8 +20,7 @@ const getComponent = (template) => {
20
20
  const OnOffTemplate = memo(({ actionGroup, doAction, sensor }) => {
21
21
  const { configuration } = actionGroup;
22
22
  const { action_data, action_on_data, action_off_data } = configuration;
23
- const [isOn, setIsOn] = useState(null);
24
-
23
+ const [isOn, setIsOn] = useState(true);
25
24
  // eslint-disable-next-line no-unused-vars
26
25
  const [configValues, _] = useConfigGlobalState('configValues');
27
26
 
@@ -106,7 +105,7 @@ const OnOffTemplate = memo(({ actionGroup, doAction, sensor }) => {
106
105
  if (sensor?.device_type === DEVICE_TYPE.LG_THINQ) {
107
106
  return;
108
107
  }
109
- if (sensor?.is_managed_by_backend && sensor.device_type !== 'GOOGLE_HOME') {
108
+ if (sensor?.is_managed_by_backend) {
110
109
  watchMultiConfigs([configuration.config]);
111
110
  }
112
111
  }, [sensor, configuration.config]);
@@ -9,7 +9,7 @@ import { useDropdownAction } from './hooks/useDropdownAction';
9
9
  import { useConfigGlobalState } from '../../iot/states';
10
10
  import styles from './OptionsDropdownActionTemplateStyle';
11
11
  import { watchMultiConfigs } from '../../iot/Monitor';
12
- import { TESTID } from '../../configs/Constants';
12
+ import { DEVICE_TYPE, TESTID } from '../../configs/Constants';
13
13
  import IconComponent from '../../commons/IconComponent';
14
14
  import { useTranslations } from '../../hooks/Common/useTranslations';
15
15
  import SvgDoorState from '../../../assets/images/Device/door-state.svg';
@@ -61,14 +61,16 @@ const OptionsDropdownActionTemplate = ({ actionGroup, doAction, sensor }) => {
61
61
  const value = getOptionValue(newOption);
62
62
  let actionName = `${sensor?.name} ${title?.toLowerCase()} ${value}`;
63
63
  actionName = actionName.replace(/\s+/g, ' ').trim();
64
- doAction(
65
- action_data,
66
- JSON.stringify({ level: value, key_code: newOption?.value_int }),
67
- actionName
68
- );
64
+
65
+ let data = JSON.stringify({ level: value, key_code: newOption?.value_int });
66
+ if (sensor.device_type === DEVICE_TYPE.GOOGLE_HOME) {
67
+ data = value;
68
+ }
69
+
70
+ doAction(action_data, data, actionName);
69
71
  if (sensor?.is_managed_by_backend) {
70
72
  configuration.config &&
71
- sensor.device_type !== 'GOOGLE_HOME' &&
73
+ sensor.device_type !== DEVICE_TYPE.GOOGLE_HOME &&
72
74
  watchMultiConfigs([configuration.config]);
73
75
  }
74
76
  hideAlertAction();
@@ -33,15 +33,11 @@ const SliderRangeTemplate = memo(({ actionGroup, doAction, sensor }) => {
33
33
  useEffect(() => {
34
34
  const { config } = configuration;
35
35
  const configValue = configValues[config];
36
- let valueTemp = configValue;
37
- if (configValue > 0) {
38
- valueTemp = Math.round((configValue / 254) * 100);
39
- }
40
- setValueBrightness(valueTemp);
36
+ setValueBrightness(configValue);
41
37
  }, [configuration.config, configValues, configuration]);
42
38
 
43
39
  useEffect(() => {
44
- if (sensor?.is_managed_by_backend && sensor.device_type !== 'GOOGLE_HOME') {
40
+ if (sensor?.is_managed_by_backend) {
45
41
  watchMultiConfigs([configuration.config]);
46
42
  }
47
43
  }, [sensor, configuration.config]);
@@ -1,5 +1,5 @@
1
1
  import React, { memo, useCallback } from 'react';
2
- import { View, ScrollView } from 'react-native';
2
+ import { View, ScrollView, Alert } from 'react-native';
3
3
 
4
4
  import styles from './SmartTiviActionTemplateStyles';
5
5
  import Text from '../../Text';
@@ -22,7 +22,6 @@ import {
22
22
  Youtube,
23
23
  Netflix,
24
24
  } from './component/Icon';
25
- import { notImplemented } from '../../../utils/Utils';
26
25
 
27
26
  const SmartTiviActionTemplate = memo(
28
27
  ({ actionGroup, doAction, scrollEnabled = true }) => {
@@ -69,7 +68,7 @@ const SmartTiviActionTemplate = memo(
69
68
  case SMART_TIVI_BUTTON.HOME_BUTTON:
70
69
  case SMART_TIVI_BUTTON.BACK_BUTTON:
71
70
  case SMART_TIVI_BUTTON.CHANNEL_BUTTON:
72
- return notImplemented(t);
71
+ return Alert.alert(t('feature_under_development'));
73
72
  default:
74
73
  return <></>;
75
74
  }
@@ -92,10 +91,7 @@ const SmartTiviActionTemplate = memo(
92
91
  }, []);
93
92
  return (
94
93
  <>
95
- <ScrollView
96
- scrollEnabled={scrollEnabled}
97
- scrollIndicatorInsets={{ right: 1 }}
98
- >
94
+ <ScrollView scrollEnabled={scrollEnabled}>
99
95
  <View style={styles.wrap}>
100
96
  <View style={styles.rowOnOff}>
101
97
  <CircleButton
@@ -45,20 +45,10 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
45
45
  actionName = actionName.replace(/\s+/g, ' ').trim();
46
46
  doAction(actionData, null, actionName);
47
47
  if (sensor?.is_managed_by_backend) {
48
- config &&
49
- sensor.device_type !== 'GOOGLE_HOME' &&
50
- watchMultiConfigs([config]);
48
+ config && watchMultiConfigs([config]);
51
49
  }
52
50
  },
53
- [
54
- config,
55
- doAction,
56
- sensor?.is_managed_by_backend,
57
- sensor?.name,
58
- sensor?.device_type,
59
- text,
60
- title,
61
- ]
51
+ [config, doAction, sensor?.is_managed_by_backend, sensor?.name, text, title]
62
52
  );
63
53
 
64
54
  const iconKit = !!icon_kit_data && icon_kit_data.icon;
@@ -105,19 +95,15 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
105
95
  );
106
96
  };
107
97
 
108
- const StatesGridActionTemplate = ({
109
- actionGroup = {},
110
- doAction,
111
- sensor = {},
112
- }) => {
113
- const { configuration = {}, title } = actionGroup;
98
+ const StatesGridActionTemplate = ({ actionGroup, doAction, sensor }) => {
99
+ const { configuration, title } = actionGroup;
114
100
 
115
101
  // eslint-disable-next-line no-unused-vars
116
102
  const [configValues, setConfigValues] = useConfigGlobalState('configValues');
117
103
 
118
104
  const options = useMemo(() => {
119
- return (configuration?.options || []).map((option) => {
120
- if (configValues[option?.config] === option?.is_on_value) {
105
+ return configuration.options.map((option) => {
106
+ if (configValues[option.config] === option.is_on_value) {
121
107
  return {
122
108
  ...option,
123
109
  active: true,
@@ -128,10 +114,10 @@ const StatesGridActionTemplate = ({
128
114
  }, [configuration, configValues]);
129
115
 
130
116
  useEffect(() => {
131
- if (sensor?.is_managed_by_backend && sensor.device_type !== 'GOOGLE_HOME') {
117
+ if (sensor?.is_managed_by_backend) {
132
118
  watchMultiConfigs(configuration.options.map((option) => option.config));
133
119
  }
134
- }, [sensor.is_managed_by_backend, sensor.device_type, configuration.options]);
120
+ }, [sensor.is_managed_by_backend, configuration.options]);
135
121
 
136
122
  return (
137
123
  <View style={styles.wrap}>
@@ -14,9 +14,9 @@ import { Colors } from '../../configs';
14
14
  import { useConfigGlobalState } from '../../iot/states';
15
15
  import BottomScrollPicker from '../BottomScrollPicker';
16
16
 
17
- const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
17
+ const TimerActionTemplate = ({ actionGroup, doAction, sensor }) => {
18
18
  const t = useTranslations();
19
- const { configuration = {}, title } = actionGroup;
19
+ const { configuration, title } = actionGroup;
20
20
  const [showTime, setShowTime] = useState(false);
21
21
  const [showHour, setShowHour] = useState(false);
22
22
 
@@ -94,7 +94,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
94
94
  if (sensor.is_managed_by_backend) {
95
95
  hour !== undefined &&
96
96
  minute !== undefined &&
97
- sensor.device_type !== 'GOOGLE_HOME' &&
98
97
  watchMultiConfigs([
99
98
  configuration.config_hour,
100
99
  configuration.config_minute,
@@ -107,17 +106,13 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
107
106
  configuration.config_minute,
108
107
  doAction,
109
108
  sensor.is_managed_by_backend,
110
- sensor.device_type,
111
109
  ]
112
110
  );
113
111
 
114
112
  const doActionHour = useCallback(
115
113
  (hour) => {
116
114
  doAction(configuration.action_data, hour);
117
- if (
118
- sensor.is_managed_by_backend &&
119
- sensor.device_type !== 'GOOGLE_HOME'
120
- ) {
115
+ if (sensor.is_managed_by_backend) {
121
116
  hour && watchMultiConfigs([configuration.config_hour]);
122
117
  }
123
118
  },
@@ -126,7 +121,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
126
121
  configuration.config_hour,
127
122
  doAction,
128
123
  sensor.is_managed_by_backend,
129
- sensor.device_type,
130
124
  ]
131
125
  );
132
126
 
@@ -207,8 +201,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
207
201
  onConfirm={onConfirmTime}
208
202
  onCancel={onHideTime}
209
203
  display="spinner"
210
- cancelTextIOS={t('cancel')}
211
- confirmTextIOS={t('confirm')}
212
204
  />
213
205
  <BottomScrollPicker
214
206
  min={configuration.min}
@@ -14,6 +14,7 @@ const TwoButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
14
14
  const { button1, button2 } = configuration;
15
15
  const [isOn, setIsOn] = useState(true);
16
16
  const [isStart, setIsStart] = useState(true);
17
+ // eslint-disable-next-line no-unused-vars
17
18
  const [configValues] = useConfigGlobalState('configValues');
18
19
  const isLight = false;
19
20
 
@@ -101,7 +102,10 @@ const TwoButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
101
102
  if (sensor?.device_type === DEVICE_TYPE.LG_THINQ) {
102
103
  return;
103
104
  }
104
- if (sensor?.is_managed_by_backend && sensor.device_type !== 'GOOGLE_HOME') {
105
+ if (
106
+ sensor?.is_managed_by_backend &&
107
+ sensor?.device_type !== 'GOOGLE_HOME'
108
+ ) {
105
109
  watchMultiConfigs([configuration.config]);
106
110
  }
107
111
  }, [sensor, configuration.config]);
@@ -1,37 +1,20 @@
1
1
  import React from 'react';
2
2
  import renderer, { act } from 'react-test-renderer';
3
- import { TouchableOpacity, Switch } from 'react-native';
3
+ import { TouchableOpacity } from 'react-native';
4
4
 
5
5
  import CurtainButtonTemplate from '../CurtainButtonTemplate';
6
6
  import { SCProvider } from '../../../context';
7
7
  import { mockSCStore } from '../../../context/mockStore';
8
8
 
9
- const mockDoAction = jest.fn();
10
- const mockActionOffData = jest.fn();
11
- const mockActionOnData = jest.fn();
12
- const mockCloseActionData = jest.fn();
13
-
14
- const wrapComponent = (actionGroup = {}, sensor = {}) => (
9
+ const wrapComponent = (actionGroup) => (
15
10
  <SCProvider initState={mockSCStore({})}>
16
- <CurtainButtonTemplate
17
- actionGroup={actionGroup}
18
- doAction={mockDoAction}
19
- sensor={sensor}
20
- />
11
+ <CurtainButtonTemplate actionGroup={actionGroup} doAction={jest.fn()} />
21
12
  </SCProvider>
22
13
  );
23
14
 
24
15
  describe('Test CurtainButtonTemplate', () => {
25
- const sensor = {
26
- name: 'test',
27
- };
28
16
  const actionGroup = {
29
17
  configuration: {
30
- text_open: 'open',
31
- is_display_lock: true,
32
- action_off_data: mockActionOffData,
33
- action_on_data: mockActionOnData,
34
- close_action_data: mockCloseActionData,
35
18
  action1: '2b949045-8e03-4c07-a855-7794ade2e69c',
36
19
  action1_data: {
37
20
  color: '#00979D',
@@ -78,44 +61,12 @@ describe('Test CurtainButtonTemplate', () => {
78
61
 
79
62
  let wrapper;
80
63
 
81
- test('render without params', async () => {
82
- await act(() => {
83
- wrapper = renderer.create(wrapComponent());
84
- });
85
- const instance = wrapper.root;
86
- const touchableOpacities = instance.findAllByType(TouchableOpacity);
87
- expect(touchableOpacities.length).toEqual(3);
88
- });
89
-
90
64
  test('render CurtainButtonTemplate', async () => {
91
65
  await act(() => {
92
- wrapper = renderer.create(wrapComponent(actionGroup, sensor));
66
+ wrapper = renderer.create(wrapComponent(actionGroup));
93
67
  });
94
68
  const instance = wrapper.root;
95
69
  const touchableOpacities = instance.findAllByType(TouchableOpacity);
96
70
  expect(touchableOpacities.length).toEqual(3);
97
- await touchableOpacities[0].props.onPress();
98
- await touchableOpacities[1].props.onPress();
99
- await touchableOpacities[2].props.onPress();
100
- expect(mockDoAction).toBeCalledWith(
101
- mockCloseActionData,
102
- null,
103
- sensor?.name + ' undefined'
104
- );
105
-
106
- const Switchs = instance.findAllByType(Switch);
107
- expect(Switchs).toHaveLength(1);
108
- await Switchs[0].props.onValueChange();
109
- expect(mockDoAction).toBeCalledWith(
110
- mockActionOnData,
111
- null,
112
- `${sensor.name} lock`
113
- );
114
- await Switchs[0].props.onValueChange();
115
- expect(mockDoAction).toBeCalledWith(
116
- mockActionOffData,
117
- null,
118
- `${sensor.name} unlock`
119
- );
120
71
  });
121
72
  });
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { TouchableOpacity } from 'react-native';
2
+ import { ActivityIndicator, TouchableOpacity } from 'react-native';
3
3
  import { act, create } from 'react-test-renderer';
4
4
  import Text from '../../../commons/Text';
5
- import { TESTID } from '../../../configs/Constants';
5
+ import { DEVICE_TYPE, TESTID } from '../../../configs/Constants';
6
6
  import { watchMultiConfigs } from '../../../iot/Monitor';
7
7
  import NumberUpDownActionTemplate from '../NumberUpDownActionTemplate';
8
8
 
@@ -48,7 +48,10 @@ describe('Test NumberUpDownActionTemplate', () => {
48
48
  <NumberUpDownActionTemplate
49
49
  actionGroup={actionGroup}
50
50
  doAction={mockDoAction}
51
- sensor={{ is_managed_by_backend: true }}
51
+ sensor={{
52
+ is_managed_by_backend: true,
53
+ device_type: DEVICE_TYPE.LG_THINQ,
54
+ }}
52
55
  />
53
56
  );
54
57
  });
@@ -288,4 +291,81 @@ describe('Test NumberUpDownActionTemplate', () => {
288
291
  const text = instance.findByType(Text);
289
292
  expect(text.props.children).toEqual('25 *C');
290
293
  });
294
+ test('render template have title', async () => {
295
+ const mockDoAction = jest.fn();
296
+ actionGroup.title = 'title';
297
+ await act(async () => {
298
+ wrapper = await create(
299
+ <NumberUpDownActionTemplate
300
+ actionGroup={actionGroup}
301
+ doAction={mockDoAction}
302
+ sensor={{
303
+ is_managed_by_backend: true,
304
+ device_type: DEVICE_TYPE.LG_THINQ,
305
+ }}
306
+ />
307
+ );
308
+ });
309
+ const instance = wrapper.root;
310
+ const text = instance.findAllByType(Text);
311
+ expect(text).toHaveLength(2);
312
+ });
313
+ test('render template watch config not exits', async () => {
314
+ const mockDoAction = jest.fn();
315
+ actionGroup.configuration.config = 100;
316
+ await act(async () => {
317
+ wrapper = await create(
318
+ <NumberUpDownActionTemplate
319
+ actionGroup={actionGroup}
320
+ doAction={mockDoAction}
321
+ sensor={{
322
+ is_managed_by_backend: true,
323
+ }}
324
+ />
325
+ );
326
+ });
327
+ const instance = wrapper.root;
328
+ const text = instance.findAllByType(ActivityIndicator);
329
+ expect(text).toHaveLength(1);
330
+ });
331
+ test('action up sensor device type is GOOGLE_HOME', async () => {
332
+ const mockDoAction = jest.fn();
333
+ await act(async () => {
334
+ wrapper = await create(
335
+ <NumberUpDownActionTemplate
336
+ actionGroup={actionGroup}
337
+ doAction={mockDoAction}
338
+ sensor={{
339
+ is_managed_by_backend: true,
340
+ device_type: DEVICE_TYPE.GOOGLE_HOME,
341
+ name: 'Device',
342
+ }}
343
+ />
344
+ );
345
+ });
346
+ const instance = wrapper.root;
347
+ const touchs = instance.find(
348
+ (el) =>
349
+ el.props.testID === TESTID.NUMBER_ACTION_UP &&
350
+ el.type === TouchableOpacity
351
+ );
352
+
353
+ await act(async () => {
354
+ await touchs.props.onPress();
355
+ });
356
+ expect(mockDoAction).toBeCalledWith(
357
+ {
358
+ color: '#00979D',
359
+ command_prefer_over_bluetooth: true,
360
+ command_prefer_over_googlehome: false,
361
+ command_prefer_over_internet: false,
362
+ googlehome_actions: [],
363
+ icon: 'caret-up',
364
+ id: 20,
365
+ key: '5ed1d4dc-a905-47cd-b0c9-f979644bd21a',
366
+ },
367
+ 26,
368
+ 'Device temp up'
369
+ );
370
+ });
291
371
  });
@@ -1,14 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import { act, create } from 'react-test-renderer';
3
- import OnOffTemplate from '../OnOffTemplate';
4
- import { mockSCStore } from '../../../context/mockStore';
5
- import { SCProvider } from '../../../context';
6
-
7
- const wrapComponent = (actionGroup, mockDoAction) => (
8
- <SCProvider initState={mockSCStore({})}>
9
- <OnOffTemplate actionGroup={actionGroup} doAction={mockDoAction} />
10
- </SCProvider>
11
- );
3
+ import Index from '../OnOffTemplate';
12
4
 
13
5
  jest.mock('react', () => ({
14
6
  ...jest.requireActual('react'),
@@ -57,15 +49,21 @@ describe('Test OneBigButtonTemplate', () => {
57
49
  const assertRender = (state, text) => {
58
50
  useState.mockImplementationOnce((init) => [state, setState]);
59
51
  const mockDoAction = jest.fn();
60
-
61
52
  act(() => {
62
- wrapper = create(wrapComponent(actionGroup, mockDoAction));
53
+ wrapper = create(
54
+ <Index actionGroup={actionGroup} doAction={mockDoAction} />
55
+ );
63
56
  });
64
57
 
65
58
  const renderJson = wrapper.toJSON();
66
59
 
67
- expect(renderJson?.props?.visible).toEqual(false);
68
- expect(renderJson?.type).toEqual('Modal');
60
+ expect(renderJson?.children[0].children[0].children[1].children).toEqual(
61
+ undefined
62
+ );
63
+
64
+ expect(
65
+ renderJson?.children[0].children[0].children[1].children
66
+ ).not.toEqual([text]);
69
67
  };
70
68
 
71
69
  test('render state on', () => {
@@ -80,7 +78,9 @@ describe('Test OneBigButtonTemplate', () => {
80
78
  useState.mockImplementationOnce((init) => [state, setState]);
81
79
  const mockDoAction = jest.fn();
82
80
  act(() => {
83
- wrapper = create(wrapComponent(actionGroup, mockDoAction));
81
+ wrapper = create(
82
+ <Index actionGroup={actionGroup} doAction={mockDoAction} />
83
+ );
84
84
  });
85
85
 
86
86
  expect(mockDoAction).not.toHaveBeenCalled();