@eohjsc/react-native-smart-city 0.2.21 → 0.2.27

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/README.md +1 -1
  2. package/assets/images/Add.svg +5 -0
  3. package/assets/images/AddLocationMaps/Point.svg +3 -0
  4. package/assets/images/CheckCircle.svg +4 -0
  5. package/assets/images/Close.svg +3 -0
  6. package/assets/images/HowToStart.svg +14 -0
  7. package/assets/images/Illustrations.svg +83 -0
  8. package/assets/images/OneTap.svg +14 -0
  9. package/assets/images/OneTap@1x.svg +14 -0
  10. package/assets/images/Rearrange.svg +3 -0
  11. package/assets/images/Schedule.svg +39 -0
  12. package/assets/images/ValueChange.svg +49 -0
  13. package/index.js +2 -0
  14. package/package.json +14 -2
  15. package/src/Images/Common/ActiveButton.png +0 -0
  16. package/src/Images/Common/ActiveButton@2x.png +0 -0
  17. package/src/Images/Common/ActiveButton@3x.png +0 -0
  18. package/src/Images/Common/arrow-back.png +0 -0
  19. package/src/Images/Common/checked@2x.png +0 -0
  20. package/src/Images/Common/checked@3x.png +0 -0
  21. package/src/Images/Common/file.png +0 -0
  22. package/src/Images/Common/fullscreen.png +0 -0
  23. package/src/Images/Common/refresh.png +0 -0
  24. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
  25. package/src/commons/ActionGroup/OnOffTemplate/index.js +9 -4
  26. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +4 -3
  27. package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
  28. package/src/commons/ActionGroup/ThreeButtonTemplate.js +13 -6
  29. package/src/commons/ActionGroup/ThreeButtonTemplateStyle.js +1 -1
  30. package/src/commons/ActionGroup/TimerActionTemplate.js +158 -33
  31. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +294 -0
  32. package/src/commons/ActionGroup/__test__/NumberUpDownTemplateWithNullConfigValue.test.js +60 -0
  33. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
  34. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
  35. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -45
  36. package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
  37. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
  38. package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
  39. package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
  40. package/src/commons/ActionGroup/__test__/index.test.js +39 -107
  41. package/src/commons/ActionGroup/hooks/useDropdownAction.js +2 -1
  42. package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
  43. package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
  44. package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
  45. package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
  46. package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
  47. package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
  48. package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
  49. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
  50. package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
  51. package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
  52. package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
  53. package/src/commons/ActionTemplate/index.js +69 -0
  54. package/src/commons/AlertAction/__test__/AlertAction.test.js +6 -6
  55. package/src/commons/AlertAction/index.js +2 -0
  56. package/src/commons/Automate/ItemAddNewScriptActionStyles.js +38 -0
  57. package/src/commons/Automate/ItemAutomate.js +39 -0
  58. package/src/commons/Automate/ItemAutomateStyles.js +33 -0
  59. package/src/commons/Automate/ItemScriptAction.js +45 -0
  60. package/src/commons/Automate/ItemScriptActionStyles.js +42 -0
  61. package/src/commons/Automate/__test__/ItemAutomate.test.js +16 -0
  62. package/src/commons/Automate/__test__/ItemScriptAction.test.js +16 -0
  63. package/src/commons/BackDefault/__test__/BackDefault.test.js +21 -0
  64. package/src/commons/BottomScrollPicker/index.js +62 -0
  65. package/src/commons/BottomScrollPicker/styles.js +13 -0
  66. package/src/commons/BottomSheet/index.js +41 -0
  67. package/src/commons/BottomSheet/styles.js +37 -0
  68. package/src/commons/Button/index.js +6 -1
  69. package/src/commons/ButtonPopup/__test__/__snapshots__/ButtonPopup.test.js.snap +2 -0
  70. package/src/commons/ButtonPopup/index.js +2 -0
  71. package/src/commons/Calendar/index.js +72 -0
  72. package/src/commons/Calendar/styles.js +11 -0
  73. package/src/commons/CameraDevice/index.js +2 -1
  74. package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
  75. package/src/commons/ChartLoading/index.js +2 -1
  76. package/src/commons/DateTimeRangeChange/index.js +2 -1
  77. package/src/commons/Device/ConnectedViewHeader.js +3 -1
  78. package/src/commons/Device/DeviceAlertStatus.js +5 -2
  79. package/src/commons/Device/DisconnectedView.js +34 -26
  80. package/src/commons/Device/Emergency/EmergencyButton.js +2 -1
  81. package/src/commons/Device/Emergency/EmergencyDetail.js +2 -1
  82. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
  83. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
  84. package/src/commons/Device/FlatListItems.js +3 -2
  85. package/src/commons/Device/FooterInfo.js +2 -1
  86. package/src/commons/Device/HistoryChart.js +2 -1
  87. package/src/commons/Device/ItemAddNew/index.js +8 -3
  88. package/src/commons/Device/SensorConnectedStatus.js +2 -1
  89. package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
  90. package/src/commons/Device/WindDirection/Compass/index.js +1 -1
  91. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
  92. package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
  93. package/src/commons/Device/WindSpeed/LinearChart/index.js +2 -1
  94. package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
  95. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -5
  96. package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
  97. package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
  98. package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
  99. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
  100. package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
  101. package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
  102. package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -1
  103. package/src/commons/EmergencyButton/AlertSent.js +3 -2
  104. package/src/commons/Explore/CityItem/index.js +2 -1
  105. package/src/commons/Explore/HeaderExplore/index.js +2 -1
  106. package/src/commons/Explore/HeaderLabel/index.js +2 -1
  107. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
  108. package/src/commons/Explore/SearchBox/index.js +2 -1
  109. package/src/commons/Explore/__test__/CityItem.test.js +13 -15
  110. package/src/commons/Explore/__test__/HeaderExplore.test.js +11 -7
  111. package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
  112. package/src/commons/Explore/__test__/LocationItem.test.js +31 -0
  113. package/src/commons/Header/HeaderCustom.js +22 -2
  114. package/src/commons/Header/Styles/HeaderCustomStyles.js +2 -2
  115. package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
  116. package/src/commons/HeaderAni/index.js +36 -5
  117. package/src/commons/HorizontalPicker/index.js +134 -0
  118. package/src/commons/HorizontalPicker/styles.js +56 -0
  119. package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
  120. package/src/commons/ImagePicker/index.js +3 -1
  121. package/src/commons/MediaPlayer/index.js +2 -1
  122. package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
  123. package/src/commons/MediaPlayerDetail/index.js +4 -1
  124. package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
  125. package/src/commons/MenuActionAddnew/index.js +2 -1
  126. package/src/commons/Modal/ModalBottom.js +51 -0
  127. package/src/commons/Modal/ModalFullVideo.js +2 -1
  128. package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
  129. package/src/commons/Modal/__test__/ModalBottom.test.js +39 -0
  130. package/src/commons/Modal/index.js +2 -1
  131. package/src/commons/NavBar/index.js +2 -2
  132. package/src/commons/RowItem/__test__/RowItem.test.js +16 -0
  133. package/src/commons/RowItem/index.js +61 -0
  134. package/src/commons/RowItem/styles.js +53 -0
  135. package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
  136. package/src/commons/SelectActionCard/index.js +30 -0
  137. package/src/commons/Sharing/DevicePermissionsCheckbox.js +2 -1
  138. package/src/commons/Sharing/MemberList.js +3 -1
  139. package/src/commons/Sharing/RowMember.js +3 -2
  140. package/src/commons/Sharing/StationDevicePermissions.js +2 -1
  141. package/src/commons/Sharing/WrapHeaderScrollable.js +78 -74
  142. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
  143. package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
  144. package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
  145. package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
  146. package/src/commons/SubUnit/OneTap/ItemOneTap.js +101 -0
  147. package/src/commons/SubUnit/OneTap/ItemOneTapStyles.js +41 -0
  148. package/src/commons/SubUnit/OneTap/OneTapStyles.js +36 -0
  149. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +195 -0
  150. package/src/commons/SubUnit/OneTap/index.js +39 -0
  151. package/src/commons/SubUnit/ShortDetail.js +11 -6
  152. package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
  153. package/src/commons/Today/__test__/Today.test.js +9 -1
  154. package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
  155. package/src/commons/Today/index.js +2 -1
  156. package/src/commons/Unit/SharedUnit.js +2 -1
  157. package/src/commons/Unit/__test__/SharedUnit.test.js +330 -0
  158. package/src/commons/UnitSummary/AirQuality/SegmentedRoundDisplay/index.js +1 -2
  159. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
  160. package/src/commons/UnitSummary/AirQuality/index.js +5 -120
  161. package/src/commons/UnitSummary/AirQuality/styles.js +112 -0
  162. package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -1
  163. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
  164. package/src/commons/WheelDateTimePicker/Picker.js +57 -0
  165. package/src/commons/WheelDateTimePicker/index.js +168 -0
  166. package/src/commons/WheelDateTimePicker/styles.js +21 -0
  167. package/src/commons/index.js +2 -0
  168. package/src/configs/API.js +29 -0
  169. package/src/configs/Colors.js +1 -0
  170. package/src/configs/Constants.js +61 -0
  171. package/src/configs/Images.js +1 -0
  172. package/src/configs/SCConfig.js +7 -0
  173. package/src/configs/Theme.js +20 -0
  174. package/src/context/SCContext.tsx +9 -39
  175. package/src/context/actionType.ts +11 -0
  176. package/src/context/mockStore.ts +51 -0
  177. package/src/context/reducer.ts +23 -0
  178. package/src/hooks/Common/__test__/useStatusbar.test.js +28 -0
  179. package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
  180. package/src/hooks/Common/index.js +2 -0
  181. package/src/hooks/Common/useGetIdUser.js +9 -0
  182. package/src/hooks/Common/useTranslations.ts +34 -0
  183. package/src/iot/Monitor.js +2 -1
  184. package/src/iot/RemoteControl/Bluetooth.js +2 -6
  185. package/src/iot/RemoteControl/GoogleHome.js +1 -1
  186. package/src/iot/RemoteControl/Internet.js +1 -1
  187. package/src/iot/RemoteControl/LG.js +57 -15
  188. package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -5
  189. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -3
  190. package/src/iot/RemoteControl/__test__/Internet.test.js +1 -8
  191. package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
  192. package/src/iot/RemoteControl/index.js +1 -1
  193. package/src/iot/states.js +1 -0
  194. package/src/navigations/AutomateStack.js +45 -0
  195. package/src/navigations/SharedStack.js +2 -1
  196. package/src/navigations/UnitStack.js +86 -6
  197. package/src/navigations/utils.js +8 -0
  198. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
  199. package/src/screens/AQIGuide/index.js +2 -2
  200. package/src/screens/ActivityLog/__test__/index.test.js +14 -39
  201. package/src/screens/ActivityLog/index.js +2 -1
  202. package/src/screens/AddCommon/SelectSubUnit.js +5 -4
  203. package/src/screens/AddCommon/SelectUnit.js +3 -2
  204. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
  205. package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
  206. package/src/screens/AddLocationMaps/index.js +2 -1
  207. package/src/screens/AddNewAction/Components/LoadingSelectAction.js +40 -0
  208. package/src/screens/AddNewAction/Components/index.js +3 -0
  209. package/src/screens/AddNewAction/Device/DeviceStyles.js +43 -0
  210. package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
  211. package/src/screens/AddNewAction/Device/index.js +33 -0
  212. package/src/screens/AddNewAction/SelectAction.js +237 -0
  213. package/src/screens/AddNewAction/SelectSensorDevices.js +150 -0
  214. package/src/screens/AddNewAction/SetupSensor.js +221 -0
  215. package/src/screens/AddNewAction/Styles/SelectActionStyles.js +62 -0
  216. package/src/screens/AddNewAction/Styles/SelectSensorDevicesStyles.js +36 -0
  217. package/src/screens/AddNewAction/Styles/SetupSensorStyles.js +76 -0
  218. package/src/screens/AddNewAction/__test__/SelectAction.test.js +153 -0
  219. package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +191 -0
  220. package/src/screens/AddNewAction/__test__/SetupSensor.test.js +125 -0
  221. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +112 -0
  222. package/src/screens/AddNewAutoSmart/index.js +113 -0
  223. package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
  224. package/src/screens/AddNewDevice/ConnectDevices.js +2 -1
  225. package/src/screens/AddNewDevice/ConnectingDevices.js +2 -1
  226. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -13
  227. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -7
  228. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -6
  229. package/src/screens/AddNewDevice/hooks/useStateAlertRename.js +2 -1
  230. package/src/screens/AddNewDevice/index.js +2 -1
  231. package/src/screens/AddNewGateway/ConnectedGateway.js +2 -1
  232. package/src/screens/AddNewGateway/ConnectingGateway.js +99 -24
  233. package/src/screens/AddNewGateway/ConnectingGatewayStyles.js +92 -0
  234. package/src/screens/AddNewGateway/SetupGatewayWifi.js +3 -2
  235. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -72
  236. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -4
  237. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -10
  238. package/src/screens/AddNewGateway/hooks/useStateAlertRename.js +2 -1
  239. package/src/screens/AddNewGateway/index.js +2 -1
  240. package/src/screens/AddNewOneTap/AddNewOneTapStyles.js +44 -0
  241. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +130 -0
  242. package/src/screens/AddNewOneTap/index.js +83 -0
  243. package/src/screens/AllCamera/__test__/index.test.js +103 -0
  244. package/src/screens/AllCamera/index.js +2 -1
  245. package/src/screens/Automate/Components/Loading.js +64 -0
  246. package/src/screens/Automate/Styles/indexStyles.js +64 -0
  247. package/src/screens/Automate/__test__/Loading.test.js +16 -0
  248. package/src/screens/Automate/__test__/index.test.js +93 -0
  249. package/src/screens/Automate/index.js +148 -0
  250. package/src/screens/Device/HeaderDevice/styles.js +2 -2
  251. package/src/screens/Device/__test__/detail.test.js +90 -18
  252. package/src/screens/Device/detail.js +73 -35
  253. package/src/screens/Device/hooks/useCountUp.js +4 -0
  254. package/src/screens/Device/hooks/useEmergencyButton.js +3 -2
  255. package/src/screens/Device/styles.js +5 -1
  256. package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
  257. package/src/screens/DeviceInfo/index.js +2 -1
  258. package/src/screens/EditActionsList/Styles/indexStyles.js +84 -0
  259. package/src/screens/EditActionsList/index.js +186 -0
  260. package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +3 -2
  261. package/src/screens/EmergencyContacts/EmergencyContactsList.js +9 -2
  262. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +2 -1
  263. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -18
  264. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -23
  265. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
  266. package/src/screens/EmergencyContacts/hook.js +3 -2
  267. package/src/screens/Explore/index.js +3 -2
  268. package/src/screens/GuestInfo/__test__/index.test.js +176 -0
  269. package/src/screens/GuestInfo/components/AccessScheduleItem.js +32 -0
  270. package/src/screens/GuestInfo/components/AccessScheduleSheet.js +204 -0
  271. package/src/screens/GuestInfo/components/HeaderGuestInfo.js +36 -0
  272. package/src/screens/GuestInfo/components/RecurringDetail.js +106 -0
  273. package/src/screens/GuestInfo/components/RowGuestInfo.js +31 -0
  274. package/src/screens/GuestInfo/components/TemporaryDetail.js +53 -0
  275. package/src/screens/GuestInfo/constant.js +59 -0
  276. package/src/screens/GuestInfo/index.js +150 -0
  277. package/src/screens/GuestInfo/styles/AccessScheduleDetailStyles.js +31 -0
  278. package/src/screens/GuestInfo/styles/AccessScheduleItemStyles.js +22 -0
  279. package/src/screens/GuestInfo/styles/HeaderGuestInfoStyles.js +31 -0
  280. package/src/screens/GuestInfo/styles/indexStyles.js +38 -0
  281. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
  282. package/src/screens/ManageAccess/hooks/index.js +4 -0
  283. package/src/screens/ManageAccess/index.js +49 -20
  284. package/src/screens/ManageAccess/styles/ManageAccessStyles.js +3 -0
  285. package/src/screens/PlayBackCamera/Timer.js +1 -1
  286. package/src/screens/PlayBackCamera/index.js +9 -5
  287. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
  288. package/src/screens/ScanChipQR/components/QRScan/index.js +2 -1
  289. package/src/screens/ScriptDetail/Styles/indexStyles.js +157 -0
  290. package/src/screens/ScriptDetail/__test__/index.test.js +119 -0
  291. package/src/screens/ScriptDetail/hooks/index.js +55 -0
  292. package/src/screens/ScriptDetail/index.js +344 -0
  293. package/src/screens/SelectUnit/Styles/indexStyles.js +55 -0
  294. package/src/screens/SelectUnit/__test__/index.test.js +85 -0
  295. package/src/screens/SelectUnit/index.js +100 -0
  296. package/src/screens/SetSchedule/__test__/index.test.js +97 -0
  297. package/src/screens/SetSchedule/components/RepeatOptionsPopup.js +56 -0
  298. package/src/screens/SetSchedule/components/RowItem.js +27 -0
  299. package/src/screens/SetSchedule/components/SelectWeekday.js +65 -0
  300. package/src/screens/SetSchedule/index.js +139 -0
  301. package/src/screens/SetSchedule/styles/RepeatOptionsPopupStyles.js +22 -0
  302. package/src/screens/SetSchedule/styles/RowItemStyles.js +29 -0
  303. package/src/screens/SetSchedule/styles/SelectWeekdayStyles.js +26 -0
  304. package/src/screens/SetSchedule/styles/indexStyles.js +22 -0
  305. package/src/screens/SharedUnit/TabHeader.js +2 -1
  306. package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
  307. package/src/screens/SharedUnit/index.js +3 -2
  308. package/src/screens/Sharing/MemberList.js +2 -1
  309. package/src/screens/Sharing/SelectPermission.js +2 -1
  310. package/src/screens/Sharing/SelectUser.js +3 -2
  311. package/src/screens/Sharing/__test__/MemberList.test.js +25 -28
  312. package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
  313. package/src/screens/Sharing/__test__/SelectUser.test.js +33 -15
  314. package/src/screens/Sharing/hooks/index.js +22 -17
  315. package/src/screens/SubUnit/AddSubUnit.js +3 -2
  316. package/src/screens/SubUnit/Detail.js +5 -4
  317. package/src/screens/SubUnit/EditSubUnit.js +274 -0
  318. package/src/screens/SubUnit/EditSubUnitStyles.js +119 -0
  319. package/src/screens/SubUnit/ManageSubUnit.js +114 -371
  320. package/src/screens/SubUnit/ManageSubUnitStyles.js +40 -0
  321. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -11
  322. package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
  323. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +427 -0
  324. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +51 -384
  325. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +85 -0
  326. package/src/screens/SubUnit/hooks/useManageSubUnit.js +35 -0
  327. package/src/screens/SyncLGDevice/AddLGDevice.js +3 -2
  328. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
  329. package/src/screens/TDSGuide/index.js +2 -1
  330. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
  331. package/src/screens/UVIndexGuide/index.js +2 -1
  332. package/src/screens/Unit/AddMenu.js +3 -2
  333. package/src/screens/Unit/Detail.js +66 -20
  334. package/src/screens/Unit/ManageUnit/index.js +4 -3
  335. package/src/screens/Unit/ManageUnit.js +15 -4
  336. package/src/screens/Unit/MoreMenu.js +3 -2
  337. package/src/screens/Unit/SelectLocation.js +8 -2
  338. package/src/screens/Unit/SelectLocationStyles.js +11 -0
  339. package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
  340. package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
  341. package/src/screens/Unit/__test__/Detail.test.js +92 -33
  342. package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
  343. package/src/screens/Unit/components/Header/index.js +2 -1
  344. package/src/screens/Unit/components/ListMyAllUnit/index.js +2 -1
  345. package/src/screens/Unit/components/MyUnit/index.js +2 -1
  346. package/src/screens/Unit/components/SearchLocation/__test__/RowLocation.test.js +36 -0
  347. package/src/screens/Unit/components/SearchLocation/index.js +2 -1
  348. package/src/screens/Unit/components/SharedUnit/index.js +2 -1
  349. package/src/screens/Unit/components/__test__/MyUnit.test.js +22 -72
  350. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +32 -0
  351. package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
  352. package/src/screens/UnitSummary/__test__/index.test.js +12 -4
  353. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
  354. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -1
  355. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
  356. package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -1
  357. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
  358. package/src/screens/UnitSummary/components/Temperature/index.js +2 -1
  359. package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -1
  360. package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
  361. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
  362. package/src/screens/UnitSummary/components/UvIndex/index.js +2 -1
  363. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
  364. package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -1
  365. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
  366. package/src/screens/UnitSummary/components/__test__/UnitSummary.test.js +67 -0
  367. package/src/screens/UnitSummary/components/__test__/index.test.js +48 -0
  368. package/src/screens/UnitSummary/components/index.js +1 -37
  369. package/src/screens/UnitSummary/components/indexstyles.js +39 -0
  370. package/src/screens/UnitSummary/index.js +2 -1
  371. package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
  372. package/src/screens/WaterQualityGuide/index.js +2 -1
  373. package/src/utils/Apis/axios.js +0 -4
  374. package/src/utils/Converter/array.js +4 -0
  375. package/src/utils/Converter/time.js +29 -4
  376. package/src/utils/I18n/index.ts +6 -0
  377. package/src/utils/I18n/translations/en.json +77 -5
  378. package/src/utils/I18n/translations/vi.json +73 -3
  379. package/src/utils/I18n/translations.ts +45 -0
  380. package/src/utils/Route/index.js +13 -0
  381. package/src/utils/__test__/InitData.test.js +20 -0
  382. package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
  383. package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
  384. package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
  385. package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
  386. package/src/commons/Header/__test__/Header.test.js +0 -24
  387. package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
  388. package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
  389. package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
  390. package/src/iot/RemoteControl/__test__/index.test.js +0 -101
  391. package/src/iot/__test__/Monitor.test.js +0 -119
  392. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
  393. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
  394. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
  395. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -358
  396. package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  397. package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
  398. package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  399. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
  400. package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
  401. package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
  402. package/src/utils/Converter/__test__/time.test.js +0 -126
  403. package/src/utils/I18n/index.js +0 -19
  404. package/src/utils/I18n/index.test.js +0 -7
@@ -1,7 +1,7 @@
1
1
  import React, { memo, useCallback, useMemo, useState } from 'react';
2
- import { StyleSheet, TouchableOpacity, View } from 'react-native';
2
+ import { TouchableOpacity, View } from 'react-native';
3
3
  import { IconOutline } from '@ant-design/icons-react-native';
4
- import { t } from 'i18n-js';
4
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
5
5
 
6
6
  import { Colors } from '../../../configs';
7
7
  import { Section } from '../../../commons/index';
@@ -10,8 +10,10 @@ import ConfigHistoryChart from '../ConfigHistoryChart';
10
10
 
11
11
  import SegmentedRoundDisplay from './SegmentedRoundDisplay';
12
12
  import { TESTID } from '../../../configs/Constants';
13
+ import styles from './styles';
13
14
 
14
15
  const AirQuality = memo(({ summaryDetail }) => {
16
+ const t = useTranslations();
15
17
  const {
16
18
  outdoor_pm10_id,
17
19
  outdoor_pm2_5_id,
@@ -121,15 +123,8 @@ const AirQuality = memo(({ summaryDetail }) => {
121
123
  totalValue={500}
122
124
  title={outdoorValues[indexOutdoor].title}
123
125
  style={styles.segment}
126
+ textHeader={t('text_air_quality_index')}
124
127
  />
125
-
126
- <TouchableOpacity
127
- style={[styles.touchStatus, { backgroundColor: outdoorColor }]}
128
- >
129
- <Text size={14} color={Colors.White}>
130
- {outdoorStatus}
131
- </Text>
132
- </TouchableOpacity>
133
128
  {!!advices && !!advices.length && (
134
129
  <View style={styles.boxHealth}>
135
130
  <IconOutline name="alert" size={20} style={styles.iconMargin} />
@@ -173,113 +168,3 @@ const AirQuality = memo(({ summaryDetail }) => {
173
168
  });
174
169
 
175
170
  export default AirQuality;
176
-
177
- const styles = StyleSheet.create({
178
- textIndoor: {
179
- color: Colors.Gray9,
180
- fontSize: 20,
181
- marginBottom: 4,
182
- },
183
- textDesIndoor: {
184
- color: Colors.Gray8,
185
- fontSize: 12,
186
- marginBottom: 16,
187
- },
188
- textNotAvailable: {
189
- textAlign: 'center',
190
- },
191
- boxStatus: {
192
- borderRadius: 10,
193
- height: 80,
194
- overflow: 'hidden',
195
- flexDirection: 'row',
196
- marginBottom: 16,
197
- },
198
- boxEmotion: {
199
- height: 80,
200
- width: 80,
201
- backgroundColor: Colors.Yellow6,
202
- justifyContent: 'center',
203
- alignItems: 'center',
204
- },
205
- textStatus: {
206
- fontSize: 16,
207
- color: Colors.Gray9,
208
- marginRight: 24,
209
- textAlign: 'right',
210
- maxWidth: 120,
211
- },
212
- boxTextStatus: {
213
- backgroundColor: Colors.Yellow4,
214
- flex: 1,
215
- alignItems: 'flex-end',
216
- justifyContent: 'center',
217
- },
218
- boxNumber: {
219
- flexDirection: 'row',
220
- justifyContent: 'space-between',
221
- marginBottom: 16,
222
- },
223
- boxHealth: {
224
- flexDirection: 'row',
225
- marginBottom: 12,
226
- alignItems: 'center',
227
- marginTop: 10,
228
- },
229
- boxContentHealth: {
230
- flexDirection: 'row',
231
- alignItems: 'center',
232
- marginBottom: 8,
233
- },
234
- boxDot: {
235
- width: 8,
236
- height: 8,
237
- borderRadius: 4,
238
- backgroundColor: Colors.Yellow6,
239
- marginRight: 8,
240
- },
241
- textOutdoor: {
242
- color: Colors.Gray9,
243
- fontSize: 20,
244
- marginBottom: 24,
245
- marginTop: 16,
246
- },
247
- touchOption: {
248
- borderWidth: 1,
249
- borderColor: Colors.Gray5,
250
- paddingHorizontal: 16,
251
- paddingVertical: 5,
252
- marginHorizontal: 4,
253
- borderRadius: 2,
254
- },
255
- textOption: {
256
- alignSelf: 'center',
257
- marginBottom: 8,
258
- },
259
- touchStatus: {
260
- borderRadius: 100,
261
- paddingHorizontal: 24,
262
- alignSelf: 'center',
263
- paddingVertical: 3,
264
- marginTop: 12,
265
- },
266
- segment: {
267
- marginTop: 36,
268
- alignSelf: 'center',
269
- },
270
- boxOutdoorValues: {
271
- flexDirection: 'row',
272
- justifyContent: 'center',
273
- },
274
- iconMargin: {
275
- marginRight: 8,
276
- },
277
- historyChart: {
278
- paddingHorizontal: 16,
279
- backgroundColor: Colors.White,
280
- borderRadius: 20,
281
- borderWidth: 1,
282
- borderColor: Colors.Gray4,
283
- marginTop: 16,
284
- },
285
- });
@@ -0,0 +1,112 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ import { Colors } from '../../../configs';
4
+
5
+ export default StyleSheet.create({
6
+ textIndoor: {
7
+ color: Colors.Gray9,
8
+ fontSize: 20,
9
+ marginBottom: 4,
10
+ },
11
+ textDesIndoor: {
12
+ color: Colors.Gray8,
13
+ fontSize: 12,
14
+ marginBottom: 16,
15
+ },
16
+ textNotAvailable: {
17
+ textAlign: 'center',
18
+ },
19
+ boxStatus: {
20
+ borderRadius: 10,
21
+ height: 80,
22
+ overflow: 'hidden',
23
+ flexDirection: 'row',
24
+ marginBottom: 16,
25
+ },
26
+ boxEmotion: {
27
+ height: 80,
28
+ width: 80,
29
+ backgroundColor: Colors.Yellow6,
30
+ justifyContent: 'center',
31
+ alignItems: 'center',
32
+ },
33
+ textStatus: {
34
+ fontSize: 16,
35
+ color: Colors.Gray9,
36
+ marginRight: 24,
37
+ textAlign: 'right',
38
+ maxWidth: 120,
39
+ },
40
+ boxTextStatus: {
41
+ backgroundColor: Colors.Yellow4,
42
+ flex: 1,
43
+ alignItems: 'flex-end',
44
+ justifyContent: 'center',
45
+ },
46
+ boxNumber: {
47
+ flexDirection: 'row',
48
+ justifyContent: 'space-between',
49
+ marginBottom: 16,
50
+ },
51
+ boxHealth: {
52
+ flexDirection: 'row',
53
+ marginBottom: 12,
54
+ alignItems: 'center',
55
+ marginTop: 36,
56
+ },
57
+ boxContentHealth: {
58
+ flexDirection: 'row',
59
+ alignItems: 'center',
60
+ marginBottom: 8,
61
+ },
62
+ boxDot: {
63
+ width: 8,
64
+ height: 8,
65
+ borderRadius: 4,
66
+ backgroundColor: Colors.Yellow6,
67
+ marginRight: 8,
68
+ },
69
+ textOutdoor: {
70
+ color: Colors.Gray9,
71
+ fontSize: 20,
72
+ marginBottom: 24,
73
+ marginTop: 16,
74
+ },
75
+ touchOption: {
76
+ borderWidth: 1,
77
+ borderColor: Colors.Gray5,
78
+ paddingHorizontal: 16,
79
+ paddingVertical: 5,
80
+ marginHorizontal: 4,
81
+ borderRadius: 2,
82
+ },
83
+ textOption: {
84
+ paddingTop: 4,
85
+ },
86
+ touchStatus: {
87
+ borderRadius: 100,
88
+ paddingHorizontal: 24,
89
+ alignSelf: 'center',
90
+ paddingVertical: 3,
91
+ marginTop: 12,
92
+ },
93
+ segment: {
94
+ marginTop: 36,
95
+ alignSelf: 'center',
96
+ },
97
+ boxOutdoorValues: {
98
+ flexDirection: 'row',
99
+ justifyContent: 'center',
100
+ },
101
+ iconMargin: {
102
+ marginRight: 8,
103
+ },
104
+ historyChart: {
105
+ paddingHorizontal: 16,
106
+ backgroundColor: Colors.White,
107
+ borderRadius: 20,
108
+ borderWidth: 1,
109
+ borderColor: Colors.Gray4,
110
+ marginTop: 16,
111
+ },
112
+ });
@@ -1,6 +1,6 @@
1
1
  import React, { memo } from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
- import { t } from 'i18n-js';
3
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
4
4
 
5
5
  import { Colors } from '../../../configs';
6
6
  import TotalPowerBox from '../TotalPowerBox';
@@ -8,6 +8,7 @@ import Text from '../../Text';
8
8
  import { TESTID } from '../../../configs/Constants';
9
9
 
10
10
  const TotalPowerConsumption = memo(({ time, total }) => {
11
+ const t = useTranslations();
11
12
  return (
12
13
  <View style={styles.container}>
13
14
  <Text color={Colors.Gray9} size={16} style={styles.txtCurrent}>
@@ -2,19 +2,25 @@ import TotalPowerConsumption from '../TotalPowerConsumption/index';
2
2
  import React from 'react';
3
3
  import renderer, { act } from 'react-test-renderer';
4
4
  import { TESTID } from '../../../configs/Constants';
5
+ import { SCProvider } from '../../../context';
6
+ import { mockSCStore } from '../../../context/mockStore';
7
+
8
+ const wrapComponent = () => (
9
+ <SCProvider initState={mockSCStore({})}>
10
+ <TotalPowerConsumption
11
+ total={{
12
+ value: 10,
13
+ }}
14
+ />
15
+ </SCProvider>
16
+ );
5
17
 
6
18
  describe('Test Total Power Consumption', () => {
7
19
  let tree;
8
20
 
9
- test('render Total Power Consumption', () => {
10
- act(() => {
11
- tree = renderer.create(
12
- <TotalPowerConsumption
13
- total={{
14
- value: 10,
15
- }}
16
- />
17
- );
21
+ test('render Total Power Consumption', async () => {
22
+ await act(() => {
23
+ tree = renderer.create(wrapComponent());
18
24
  });
19
25
  const instance = tree.root;
20
26
  const item = instance.find(
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+
4
+ import ScrollPicker from 'react-native-wheel-scrollview-picker';
5
+ import Text from '../Text';
6
+
7
+ import { Colors } from '../../configs';
8
+ import styles from './styles';
9
+
10
+ const PickerItem = ({ data, isSelected, align }) => {
11
+ return (
12
+ <View style={styles.wrapText}>
13
+ <Text
14
+ type={isSelected ? 'H2' : 'H3'}
15
+ color={isSelected ? Colors.Gray9 : Colors.Gray6}
16
+ bold={isSelected}
17
+ style={{ textAlign: align }}
18
+ >
19
+ {data.text}
20
+ </Text>
21
+ </View>
22
+ );
23
+ };
24
+
25
+ const Picker = ({
26
+ dataSource,
27
+ selectedIndex,
28
+ onValueChange,
29
+ keyPrefix,
30
+ style,
31
+ align = 'center',
32
+ }) => {
33
+ return (
34
+ <View style={style}>
35
+ <ScrollPicker
36
+ dataSource={dataSource}
37
+ selectedIndex={selectedIndex}
38
+ renderItem={(data, index, isSelected) => (
39
+ <PickerItem
40
+ key={`${keyPrefix}-${index}`}
41
+ data={data}
42
+ isSelected={isSelected}
43
+ align={align}
44
+ />
45
+ )}
46
+ onValueChange={onValueChange}
47
+ wrapperHeight={180}
48
+ wrapperColor={Colors.Transparent}
49
+ itemHeight={60}
50
+ highlightColor={Colors.Transparent}
51
+ highlightBorderWidth={0}
52
+ />
53
+ </View>
54
+ );
55
+ };
56
+
57
+ export default Picker;
@@ -0,0 +1,168 @@
1
+ import React, { memo, useState, useEffect, useCallback, useMemo } from 'react';
2
+ import { View } from 'react-native';
3
+ import { useTranslations } from '../../hooks/Common/useTranslations';
4
+ import moment from 'moment';
5
+
6
+ import Picker from './Picker';
7
+ import Text from '../Text';
8
+ import BottomSheet from '../BottomSheet';
9
+ import ViewButtonBottom from '../ViewButtonBottom';
10
+
11
+ import { getDateData } from '../../utils/Converter/time';
12
+ import styles from './styles';
13
+ import { TESTID } from '../../configs/Constants';
14
+
15
+ const formatNumber = (number) => {
16
+ return {
17
+ text: `${number}`.padStart(2, '0'),
18
+ value: number,
19
+ };
20
+ };
21
+
22
+ const hourData = Array.from({ length: 24 }, (_, i) => formatNumber(i));
23
+ const minuteData = Array.from({ length: 60 }, (_, i) => formatNumber(i));
24
+
25
+ const WheelDateTimePicker = ({
26
+ mode,
27
+ isVisible,
28
+ defaultValue,
29
+ onPicked,
30
+ onCancel,
31
+ onHide,
32
+ }) => {
33
+ const t = useTranslations();
34
+ const [dateSelected, setDateSelected] = useState();
35
+ const [hourSelected, setHourSelected] = useState();
36
+ const [minuteSelected, setMinuteSelected] = useState();
37
+
38
+ const { dateData, indexInitialDate, indexInitialHour, indexInitialMinute } =
39
+ useMemo(() => {
40
+ const date = defaultValue ? moment(defaultValue) : moment().second(0);
41
+ const maximumDate = moment(date).add(15, 'days');
42
+ const minimumDate = moment(date).add(-15, 'days');
43
+ const [dateData, indexDate] =
44
+ mode === 'datetime'
45
+ ? getDateData(date, maximumDate, minimumDate)
46
+ : [[{ value: date }], 0];
47
+ return {
48
+ dateData: dateData,
49
+ indexInitialDate: indexDate,
50
+ indexInitialHour: date.hour(),
51
+ indexInitialMinute: date.minute(),
52
+ };
53
+ }, [mode, defaultValue]);
54
+
55
+ useEffect(() => {
56
+ setDateSelected(dateData[indexInitialDate].value);
57
+ setHourSelected(hourData[indexInitialHour].value);
58
+ setMinuteSelected(minuteData[indexInitialMinute].value);
59
+ }, [dateData, indexInitialDate, indexInitialHour, indexInitialMinute]);
60
+
61
+ const onValueDateChange = useCallback(
62
+ (data, _) => {
63
+ setDateSelected(data.value);
64
+ },
65
+ [setDateSelected]
66
+ );
67
+
68
+ const onValueHourChange = useCallback(
69
+ (data, _) => {
70
+ setHourSelected(data.value);
71
+ },
72
+ [setHourSelected]
73
+ );
74
+
75
+ const onValueMinuteChange = useCallback(
76
+ (data, _) => {
77
+ setMinuteSelected(data.value);
78
+ },
79
+ [setMinuteSelected]
80
+ );
81
+
82
+ const onPickerCancel = useCallback(() => {
83
+ onCancel && onCancel();
84
+ }, [onCancel]);
85
+
86
+ const onDone = useCallback(() => {
87
+ const newDateTime = moment(dateSelected);
88
+ newDateTime.hour(hourSelected);
89
+ newDateTime.minute(minuteSelected);
90
+ onPicked && onPicked(newDateTime.valueOf());
91
+ onCancel && onCancel();
92
+ }, [dateSelected, hourSelected, minuteSelected, onCancel, onPicked]);
93
+
94
+ const title = useMemo(() => {
95
+ if (mode === 'time') {
96
+ return t('set_time');
97
+ }
98
+ return t('set_date_time');
99
+ }, [t, mode]);
100
+
101
+ return (
102
+ <BottomSheet
103
+ isVisible={isVisible}
104
+ onBackdropPress={onPickerCancel}
105
+ onHide={onHide}
106
+ title={title}
107
+ >
108
+ {mode === 'time' ? (
109
+ <View style={styles.container}>
110
+ <Picker
111
+ dataSource={hourData}
112
+ selectedIndex={indexInitialHour}
113
+ onValueChange={onValueHourChange}
114
+ keyPrefix="hour"
115
+ style={styles.picker}
116
+ />
117
+ <Text type="H2" bold style={styles.twoDot}>
118
+ :
119
+ </Text>
120
+ <Picker
121
+ dataSource={minuteData}
122
+ selectedIndex={indexInitialMinute}
123
+ onValueChange={onValueMinuteChange}
124
+ keyPrefix="minute"
125
+ style={styles.picker}
126
+ />
127
+ </View>
128
+ ) : (
129
+ <View style={styles.container}>
130
+ <Picker
131
+ dataSource={dateData}
132
+ selectedIndex={indexInitialDate}
133
+ onValueChange={onValueDateChange}
134
+ keyPrefix="date"
135
+ style={styles.picker}
136
+ align="right"
137
+ />
138
+ <Picker
139
+ dataSource={hourData}
140
+ selectedIndex={indexInitialHour}
141
+ onValueChange={onValueHourChange}
142
+ keyPrefix="hour"
143
+ style={styles.picker}
144
+ />
145
+ <Text type="H2" bold style={styles.twoDot}>
146
+ :
147
+ </Text>
148
+ <Picker
149
+ dataSource={minuteData}
150
+ selectedIndex={indexInitialMinute}
151
+ onValueChange={onValueMinuteChange}
152
+ keyPrefix="minute"
153
+ style={styles.picker}
154
+ />
155
+ </View>
156
+ )}
157
+ <ViewButtonBottom
158
+ leftTitle={t('cancel')}
159
+ onLeftClick={onPickerCancel}
160
+ rightTitle={t('done')}
161
+ onRightClick={onDone}
162
+ testIDPrefix={TESTID.WHEEL_DATE_TIME_PICKER}
163
+ />
164
+ </BottomSheet>
165
+ );
166
+ };
167
+
168
+ export default memo(WheelDateTimePicker);
@@ -0,0 +1,21 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export default StyleSheet.create({
4
+ container: {
5
+ flexDirection: 'row',
6
+ justifyContent: 'center',
7
+ alignItems: 'center',
8
+ height: 180,
9
+ },
10
+ picker: {
11
+ width: 120,
12
+ },
13
+ twoDot: {
14
+ marginTop: -4,
15
+ },
16
+ wrapText: {
17
+ width: '100%',
18
+ height: '100%',
19
+ justifyContent: 'center',
20
+ },
21
+ });
@@ -14,6 +14,7 @@ import MenuActionAddnew from './MenuActionAddnew';
14
14
  import MenuActionList from './MenuActionList';
15
15
  import RadioCircle from './RadioCircle';
16
16
  import { CircleButton } from './CircleButton';
17
+ import HorizontalPicker from './HorizontalPicker';
17
18
 
18
19
  export {
19
20
  ButtonPopup,
@@ -32,4 +33,5 @@ export {
32
33
  MenuActionList,
33
34
  RadioCircle,
34
35
  CircleButton,
36
+ HorizontalPicker,
35
37
  };
@@ -24,6 +24,10 @@ const API = {
24
24
  SCConfig.apiRoot + `/property_manager/units/${id}/chip_scan/`,
25
25
  MANAGE_ACCESS: (id) =>
26
26
  SCConfig.apiRoot + `/property_manager/manage_access/${id}/`,
27
+ AUTOMATE: (id) =>
28
+ SCConfig.apiRoot + `/property_manager/units/${id}/automate/`,
29
+ DEVICE_CONTROL: (id) =>
30
+ SCConfig.apiRoot + `/property_manager/units/${id}/device_control/`,
27
31
  },
28
32
  SUB_UNIT: {
29
33
  REMOVE_SUB_UNIT: (unitId, id) =>
@@ -67,11 +71,36 @@ const API = {
67
71
  REMOVE_FROM_FAVOURITES: (unit_id, station_id, id) =>
68
72
  SCConfig.apiRoot +
69
73
  `/property_manager/${unit_id}/sub_units/${station_id}/devices/${id}/remove_from_favourites/`,
74
+ DISPLAY_ACTIONS: (id) =>
75
+ SCConfig.apiRoot + `/property_manager/sensors/${id}/display_actions/`,
76
+ },
77
+ SHARED_SENSOR: {
78
+ ACCESS: (id) =>
79
+ SCConfig.apiRoot + `/property_manager/shared_sensors/${id}/access/`,
70
80
  },
71
81
  CONFIG: {
72
82
  DISPLAY_HISTORY: () =>
73
83
  SCConfig.apiRoot + '/property_manager/configs/display_history/',
74
84
  },
85
+ AUTOMATE: {
86
+ ACTION_ONE_TAP: (id) =>
87
+ SCConfig.apiRoot + `/property_manager/automate/${id}/action_one_tap/`,
88
+ SCRIPT: (id) =>
89
+ SCConfig.apiRoot + `/property_manager/automate/${id}/script/`,
90
+ ORDER_SCRIPT_ACTION: (id) =>
91
+ SCConfig.apiRoot +
92
+ `/property_manager/automate/${id}/order_script_action/`,
93
+ DELETE_SCRIPT_ACTION: (automateId, actionId) =>
94
+ SCConfig.apiRoot +
95
+ `/property_manager/automate/${automateId}/script_action/${actionId}/`,
96
+ ADD_SCRIPT_ACTION: (id) =>
97
+ SCConfig.apiRoot + `/property_manager/automate/${id}/add_script_action/`,
98
+ CREATE_AUTOMATE: () => SCConfig.apiRoot + '/property_manager/automate/',
99
+ GET_AUTOMATES: () => SCConfig.apiRoot + '/accounts/automates/',
100
+ GET_ALL_UNITS: () => SCConfig.apiRoot + '/property_manager/units/all_unit/',
101
+ GET_SENSOR_CONFIG: (id) =>
102
+ SCConfig.apiRoot + `/property_manager/sensors/${id}/display_configs/`,
103
+ },
75
104
  GOOGLE_HOME: {
76
105
  CHECK_SEND_EMAIL: () =>
77
106
  SCConfig.apiRoot + '/connection_manager/googlehome/check_send_email/',
@@ -129,4 +129,5 @@ export const Colors = {
129
129
  BlackTransparent6: 'rgba(0, 0, 0, 0.6)',
130
130
  BlackTransparent16: 'rgba(0, 0, 0, 0.16)',
131
131
  WhiteTransparent8: 'rgba(255, 255, 255, 0.8)',
132
+ BlueTransparent5: 'rgba(230, 247, 255, 0.5)',
132
133
  };