@eohjsc/react-native-smart-city 0.5.8 → 0.6.0-rc1

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 (304) hide show
  1. package/README.md +1 -1
  2. package/android/build.gradle +8 -10
  3. package/package.json +52 -69
  4. package/src/commons/Action/__test__/ItemQuickAction.test.js +2 -2
  5. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +3 -3
  6. package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/ButtonWrapper.js +3 -3
  7. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +3 -3
  8. package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +3 -3
  9. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/ButtonWrapper.js +2 -2
  10. package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +0 -15
  11. package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +2 -2
  12. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +2 -2
  13. package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +2 -2
  14. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/CircleButton.js +5 -5
  15. package/src/commons/ActionGroup/SmartTiviActionTemplate/component/ControlPlay.js +3 -3
  16. package/src/commons/ActionGroup/TerminalBoxTemplate.js +2 -2
  17. package/src/commons/ActionGroup/TextBoxTemplate.js +2 -2
  18. package/src/commons/ActionGroup/ThreeButtonTemplate/__test__/ThreeButtonTemplate.test.js +4 -4
  19. package/src/commons/ActionGroup/TimerActionTemplate.js +3 -4
  20. package/src/commons/ActionGroup/TwoButtonTemplate/index.js +2 -2
  21. package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +2 -9
  22. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +4 -11
  23. package/src/commons/ActionGroup/__test__/OnOffSmartLock.test.js +2 -9
  24. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +4 -18
  25. package/src/commons/ActionGroup/__test__/OneBigButtonTemplate.test.js +2 -2
  26. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +1 -8
  27. package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +0 -7
  28. package/src/commons/ActionGroup/__test__/SwitchButtonTemplate.test.js +4 -15
  29. package/src/commons/ActionGroup/__test__/TerminalBoxTemplate.test.js +0 -7
  30. package/src/commons/ActionGroup/__test__/TextBoxTemplate.test.js +1 -8
  31. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +1 -8
  32. package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +1 -8
  33. package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +2 -9
  34. package/src/commons/ActionGroup/__test__/index.test.js +14 -21
  35. package/src/commons/ActionTemplate/__test__/index.test.js +2 -0
  36. package/src/commons/ActionTemplate/__test__/utils.js +21 -0
  37. package/src/commons/ActionTemplate/index.js +1 -2
  38. package/src/commons/BackDefault/index.js +2 -2
  39. package/src/commons/ButtonPopup/index.js +2 -2
  40. package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +1 -12
  41. package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +27 -20
  42. package/src/commons/Dashboard/MyUnit/index.js +0 -1
  43. package/src/commons/DateTimeRangeChange/DateTimeButton.js +2 -2
  44. package/src/commons/Device/ConnectedViewHeader.js +2 -2
  45. package/src/commons/Device/DisconnectedView.js +2 -2
  46. package/src/commons/Device/Emergency/EmergencyDetail.js +3 -3
  47. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +2 -2
  48. package/src/commons/Device/FlatListItems.js +3 -3
  49. package/src/commons/Device/Hanet/ItemHanetDevice.js +3 -3
  50. package/src/commons/Device/Hanet/ItemHanetDevice.test.js +3 -11
  51. package/src/commons/Device/HorizontalBarChart.js +1 -1
  52. package/src/commons/Device/ItemAddNew/index.js +2 -2
  53. package/src/commons/Device/ItemDevice.js +2 -2
  54. package/src/commons/Device/PowerConsumptionChart.js +154 -0
  55. package/src/commons/Device/SonosSpeaker/index.js +3 -3
  56. package/src/commons/Device/WaterPurifierStatus/AlertStatusMachine.js +2 -2
  57. package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +2 -6
  58. package/src/commons/DisplayChecking/index.js +2 -2
  59. package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -2
  60. package/src/commons/EmergencyButton/AlertSent.js +2 -2
  61. package/src/commons/FieldTemplate/ChooseUserField/index.js +2 -2
  62. package/src/commons/Form/CurrencyInput.js +1 -15
  63. package/src/commons/Header/HeaderCustom.js +3 -3
  64. package/src/commons/HeaderAni/index.js +2 -2
  65. package/src/commons/IconComponent/index.js +3 -3
  66. package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +1 -1
  67. package/src/commons/MenuActionList/__test__/MenuActionList.test.js +1 -0
  68. package/src/commons/NavBar/index.js +2 -2
  69. package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +3 -3
  70. package/src/commons/PreventAccess/__test__/PreventAccess.test.js +1 -13
  71. package/src/commons/Processing/__test__/Connecting.test.js +3 -14
  72. package/src/commons/SearchLocation/index.js +2 -2
  73. package/src/commons/SelectActionCard/index.js +2 -2
  74. package/src/commons/SelectSubUnit/__test__/SelectSubUnit.test.js +1 -18
  75. package/src/commons/SelectSubUnit/index.js +2 -2
  76. package/src/commons/SelectUnit/__test__/SelectUnit.test.js +1 -13
  77. package/src/commons/Sharing/BtnRemoveMember.js +2 -2
  78. package/src/commons/Sharing/StationDevicePermissions.js +2 -2
  79. package/src/commons/Sharing/WrapHeaderScrollable.js +1 -1
  80. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +1 -1
  81. package/src/commons/SubUnit/DeviceTemplate/ConfigAndEvaluation/ConfigAndEvaluation.js +2 -2
  82. package/src/commons/SubUnit/DeviceTemplate/ConfigValue/ConfigValue.js +2 -2
  83. package/src/commons/SubUnit/DeviceTemplate/EvaluationOverConfig/EvaluationOverConfig.js +2 -2
  84. package/src/commons/SubUnit/Item/index.js +2 -2
  85. package/src/commons/SubUnit/OneTap/ItemOneTap.js +2 -2
  86. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +11 -8
  87. package/src/commons/SubUnit/__test__/Favorites.test.js +1 -13
  88. package/src/commons/SubUnit/__test__/ShortDetail.test.js +5 -16
  89. package/src/commons/Tabbar/__test__/index.test.js +0 -11
  90. package/src/commons/Unit/HeaderUnit/index.js +4 -4
  91. package/src/commons/Unit/SharedUnit.js +5 -5
  92. package/src/commons/Unit/__test__/HeaderUnit.test.js +3 -15
  93. package/src/commons/Unit/__test__/SharedUnit.test.js +94 -105
  94. package/src/commons/UnitSummary/AirQuality/SegmentedRoundDisplay/index.js +11 -30
  95. package/src/commons/UnitSummary/ConfigHistoryChart/index.js +6 -61
  96. package/src/commons/Widgets/IFrame/IFrame.js +54 -0
  97. package/src/commons/Widgets/IFrame/IFrameStyles.js +35 -0
  98. package/src/commons/Widgets/IFrame/__tests__/IFrame.test.js +74 -0
  99. package/src/commons/Widgets/IFrame/index.js +0 -0
  100. package/src/commons/Widgets/IFrameWithConfig/IFrameWithConfig.js +163 -0
  101. package/src/commons/Widgets/IFrameWithConfig/IFrameWithConfigStyles.js +9 -0
  102. package/src/commons/Widgets/IFrameWithConfig/__tests__/IFrameWithConfig.test.js +284 -0
  103. package/src/commons/Widgets/IFrameWithConfig/index.js +0 -0
  104. package/src/commons/Widgets/Widget.js +0 -0
  105. package/src/commons/Widgets/index.js +0 -0
  106. package/src/configs/Constants.js +5 -0
  107. package/src/hooks/Common/__test__/useAndroidTranslucentStatusBar.test.js +4 -15
  108. package/src/hooks/Common/useDevicesStatus.js +42 -24
  109. package/src/hooks/IoT/__test__/useRemoteControl.test.js +1 -1
  110. package/src/hooks/IoT/__test__/useWatchConfigs.test.js +0 -7
  111. package/src/iot/RemoteControl/HomeAssistant.js +1 -1
  112. package/src/iot/RemoteControl/__test__/Bluetooth.test.js +234 -232
  113. package/src/navigations/AutomateStack.js +2 -2
  114. package/src/navigations/EmergencyContactsStack.js +2 -2
  115. package/src/navigations/SharedStack.js +2 -2
  116. package/src/navigations/UnitStack.js +2 -2
  117. package/src/screens/ActivityLog/hooks/index.js +7 -4
  118. package/src/screens/ActivityLog/index.js +2 -2
  119. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +4 -21
  120. package/src/screens/AddCommon/__test__/SelectUnit.test.js +7 -19
  121. package/src/screens/AddLocationMaps/__test__/index.test.js +3 -13
  122. package/src/screens/AddLocationMaps/index.js +4 -4
  123. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +3 -20
  124. package/src/screens/AddNewGateway/PlugAndPlay/__test__/FirstWarning.test.js +11 -18
  125. package/src/screens/AddNewGateway/PlugAndPlay/__test__/ZigbeeDeviceConnectGuide.test.js +4 -21
  126. package/src/screens/AddNewGateway/RenameNewDevices.js +2 -2
  127. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +3 -3
  128. package/src/screens/AddNewGateway/__test__/ConnectingModbusDevice.test.js +0 -17
  129. package/src/screens/AddNewGateway/__test__/ConnectingWifiDevice.test.js +4 -19
  130. package/src/screens/AddNewGateway/__test__/ConnectingWifiGuide.test.js +3 -15
  131. package/src/screens/AddNewGateway/__test__/ConnectingZigbeeDevice.test.js +31 -51
  132. package/src/screens/AddNewGateway/__test__/RenameNewDevices.test.js +9 -22
  133. package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +12 -19
  134. package/src/screens/AddNewGateway/__test__/ScanModbusQR.test.js +6 -16
  135. package/src/screens/AddNewGateway/__test__/ScanWifiDeviceQR.test.js +4 -15
  136. package/src/screens/AddNewGateway/__test__/SelectDeviceSubUnit.test.js +3 -3
  137. package/src/screens/AddNewGateway/__test__/SelectDeviceType.test.js +18 -10
  138. package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +1 -1
  139. package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +12 -9
  140. package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +12 -9
  141. package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +7 -21
  142. package/src/screens/AddNewGateway/hooks/__Tests__/index.test.js +1 -10
  143. package/src/screens/AllGateway/DetailConfigActionInternal/__test__/index.test.js +0 -20
  144. package/src/screens/AllGateway/DetailConfigActionModbus/__test__/index.test.js +7 -24
  145. package/src/screens/AllGateway/DeviceGatewayInfo/__test__/index.test.js +0 -17
  146. package/src/screens/AllGateway/DeviceInternalDetail/__test__/index.test.js +84 -100
  147. package/src/screens/AllGateway/DeviceModbusDetail/__test__/index.test.js +64 -82
  148. package/src/screens/AllGateway/DeviceZigbeeDetail/__test__/index.test.js +36 -55
  149. package/src/screens/AllGateway/GatewayConnectionMethods/__test__/index.test.js +9 -18
  150. package/src/screens/AllGateway/GatewayDetail/__test__/index.test.js +10 -37
  151. package/src/screens/AllGateway/GatewayInfo/__test__/index.test.js +7 -32
  152. package/src/screens/AllGateway/__test__/index.test.js +1 -14
  153. package/src/screens/AllGateway/components/GatewayItem/__test__/index.test.js +0 -12
  154. package/src/screens/AllGateway/components/TabPaneCT/__test__/index.test.js +1 -13
  155. package/src/screens/AllGateway/components/TabPaneCT/index.js +1 -1
  156. package/src/screens/AllGateway/hooks/__test__/index.test.js +1 -8
  157. package/src/screens/AllGateway/test-utils.js +1 -1
  158. package/src/screens/Automate/AddNewAction/NewActionWrapper.js +2 -2
  159. package/src/screens/Automate/AddNewAction/SetupConfigCondition.js +27 -28
  160. package/src/screens/Automate/AddNewAction/__test__/ChooseAction.test.js +3 -3
  161. package/src/screens/Automate/AddNewAction/__test__/ChooseConfig.test.js +8 -5
  162. package/src/screens/Automate/AddNewAction/__test__/SelectControlDevices.test.js +2 -2
  163. package/src/screens/Automate/AddNewAction/__test__/SelectMonitorDevices.test.js +1 -18
  164. package/src/screens/Automate/AddNewAction/__test__/SetupConfigCondition.test.js +17 -15
  165. package/src/screens/Automate/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +4 -4
  166. package/src/screens/Automate/EditActionsList/__tests__/UpdateActionScript.test.js +38 -55
  167. package/src/screens/Automate/EditActionsList/__tests__/UpdateDelayScript.test.js +0 -18
  168. package/src/screens/Automate/EditActionsList/__tests__/UpdateNotifyScript.test.js +1 -19
  169. package/src/screens/Automate/EditActionsList/__tests__/index.test.js +14 -11
  170. package/src/screens/Automate/OneTap/__test__/AddNewOneTap.test.js +3 -3
  171. package/src/screens/Automate/Scenario/__test__/AddNewOneTap.test.js +2 -2
  172. package/src/screens/Automate/ScriptDetail/Components/AddActionScript.js +2 -2
  173. package/src/screens/Automate/ScriptDetail/__test__/index.test.js +33 -25
  174. package/src/screens/Automate/ScriptDetail/index.js +5 -6
  175. package/src/screens/Automate/SetSchedule/__test__/index.test.js +4 -4
  176. package/src/screens/Automate/SetSchedule/components/RowItem.js +3 -3
  177. package/src/screens/Automate/__test__/MultiUnits.test.js +5 -5
  178. package/src/screens/Automate/__test__/index.test.js +6 -6
  179. package/src/screens/Automate/index.js +2 -2
  180. package/src/screens/ChangePosition/__test__/index.test.js +1 -14
  181. package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +0 -12
  182. package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +1 -11
  183. package/src/screens/Device/EditDevice/index.js +2 -2
  184. package/src/screens/Device/__test__/detail.test.js +11 -11
  185. package/src/screens/Device/__test__/sensorDisplayItem.test.js +3 -15
  186. package/src/screens/Device/components/SensorDisplayItem.js +23 -5
  187. package/src/screens/Device/components/__test__/VisualChart.test.js +2 -9
  188. package/src/screens/Device/detail.js +11 -10
  189. package/src/screens/Drawer/Drawer.test.js +3 -11
  190. package/src/screens/Drawer/index.js +3 -4
  191. package/src/screens/EmergencyContacts/EmergencyContactsList.js +4 -8
  192. package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -3
  193. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +4 -17
  194. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +3 -14
  195. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +0 -10
  196. package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
  197. package/src/screens/EnterPassword/__test__/EnterPassword.test.js +4 -17
  198. package/src/screens/GuestInfo/__test__/index.test.js +0 -11
  199. package/src/screens/GuestInfo/components/RowGuestInfo.js +2 -2
  200. package/src/screens/GuestInfo/index.js +2 -2
  201. package/src/screens/HanetCamera/Detail.js +2 -2
  202. package/src/screens/HanetCamera/ManageAccess.js +3 -4
  203. package/src/screens/HanetCamera/MemberInfo.js +4 -4
  204. package/src/screens/HanetCamera/__test__/CaptureFaceID.test.js +2 -16
  205. package/src/screens/HanetCamera/__test__/Detail.test.js +1 -12
  206. package/src/screens/HanetCamera/__test__/ManageAccess.test.js +5 -16
  207. package/src/screens/HanetCamera/__test__/MemberInfo.test.js +5 -18
  208. package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -2
  209. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +3 -19
  210. package/src/screens/ManageAccess/index.js +3 -3
  211. package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +5 -5
  212. package/src/screens/Notification/__test__/NotificationItem.test.js +9 -19
  213. package/src/screens/Notification/index.js +3 -3
  214. package/src/screens/PlayBackCamera/Styles/index.js +2 -4
  215. package/src/screens/PlayBackCamera/Timer.js +65 -47
  216. package/src/screens/PlayBackCamera/__test__/index.test.js +32 -33
  217. package/src/screens/PlayBackCamera/index.js +115 -112
  218. package/src/screens/ScanChipQR/components/QRScan/__test__/QRScan.test.js +0 -11
  219. package/src/screens/ScanChipQR/components/QRScan/index.js +3 -3
  220. package/src/screens/SelectUnit/__test__/index.test.js +1 -21
  221. package/src/screens/SelectUnit/index.js +2 -2
  222. package/src/screens/SharedUnit/TabHeader.js +2 -2
  223. package/src/screens/Sharing/Components/EndDevice.js +3 -3
  224. package/src/screens/Sharing/UnitMemberList.js +2 -2
  225. package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +9 -4
  226. package/src/screens/Sharing/__test__/SelectShareDevice.test.js +2 -15
  227. package/src/screens/Sharing/__test__/SelectUser.test.js +2 -22
  228. package/src/screens/Sharing/__test__/UnitMemberList.test.js +2 -2
  229. package/src/screens/Sharing/__test__/UpdateShareDevice.test.js +4 -17
  230. package/src/screens/Sharing/hooks/__test__/index.test.js +2 -13
  231. package/src/screens/SmartAccount/Connecting/index.js +0 -2
  232. package/src/screens/SmartAccount/ListDevice/__test__/ListDevice.test.js +3 -18
  233. package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js +11 -21
  234. package/src/screens/SmartAccount/SuccessfullyConnected/index.js +3 -4
  235. package/src/screens/SmartAccount/__test__/Connecting.test.js +30 -36
  236. package/src/screens/SmartAccount/__test__/SmartAccount.test.js +12 -21
  237. package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +7 -17
  238. package/src/screens/SmartIr/__test__/SelectBrand.test.js +1 -11
  239. package/src/screens/SmartIr/__test__/SelectDeviceType.test.js +1 -12
  240. package/src/screens/SmartIr/__test__/SmartIr.test.js +3 -11
  241. package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +3 -3
  242. package/src/screens/SmartIr/components/SelectBrand.js +2 -2
  243. package/src/screens/SubUnit/AddSubUnit.js +1 -0
  244. package/src/screens/SubUnit/EditSubUnit.js +3 -2
  245. package/src/screens/SubUnit/ManageSubUnit.js +4 -5
  246. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +9 -31
  247. package/src/screens/SubUnit/__test__/Detail.test.js +4 -28
  248. package/src/screens/SubUnit/__test__/EditSubUnit.test.js +12 -30
  249. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +2 -2
  250. package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +0 -12
  251. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +7 -20
  252. package/src/screens/Template/__test__/EditTemplate.test.js +2 -13
  253. package/src/screens/Template/__test__/GatewayList.test.js +0 -9
  254. package/src/screens/Template/__test__/detail.test.js +4 -4
  255. package/src/screens/Template/__test__/index.test.js +1 -12
  256. package/src/screens/Template/detail.js +2 -2
  257. package/src/screens/Unit/SelectAddToFavorites.js +2 -2
  258. package/src/screens/Unit/SelectAddress.js +4 -4
  259. package/src/screens/Unit/SmartAccountItem.js +2 -2
  260. package/src/screens/Unit/Summaries.js +26 -25
  261. package/src/screens/Unit/__test__/AddMenu.test.js +5 -2
  262. package/src/screens/Unit/__test__/CheckSendEmail.test.js +0 -12
  263. package/src/screens/Unit/__test__/ChooseLocation.test.js +1 -4
  264. package/src/screens/Unit/__test__/Detail.test.js +5 -5
  265. package/src/screens/Unit/__test__/ManageUnit.test.js +2 -17
  266. package/src/screens/Unit/__test__/MoreMenu.test.js +1 -11
  267. package/src/screens/Unit/__test__/SelectAddToFavorites.test.js +3 -14
  268. package/src/screens/Unit/__test__/SelectAddress.test.js +4 -17
  269. package/src/screens/Unit/__test__/SmartAccount.test.js +14 -11
  270. package/src/screens/Unit/__test__/SmartAccountItem.test.js +0 -11
  271. package/src/screens/Unit/__test__/Summaries.test.js +2 -14
  272. package/src/screens/Unit/components/AutomateScript/index.js +2 -2
  273. package/src/screens/Unit/components/ButtonWrapper/index.js +3 -4
  274. package/src/screens/Unit/components/Header/index.js +3 -3
  275. package/src/screens/Unit/components/SharedUnit/index.js +5 -5
  276. package/src/screens/Unit/components/__test__/Header.test.js +1 -14
  277. package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +1 -11
  278. package/src/screens/Unit/components/__test__/SharedUnit.test.js +1 -11
  279. package/src/screens/UnitSummary/__test__/index.test.js +51 -17
  280. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +0 -12
  281. package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +10 -23
  282. package/src/screens/UnitSummary/components/AirQuality/__test__/index.test.js +1 -7
  283. package/src/screens/UnitSummary/components/AirQuality/index.js +3 -3
  284. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +38 -14
  285. package/src/screens/UnitSummary/components/PowerConsumption/index.js +21 -30
  286. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +1 -16
  287. package/src/screens/UnitSummary/components/Temperature/index.js +5 -1
  288. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +0 -8
  289. package/src/screens/UnitSummary/components/UvIndex/index.js +2 -2
  290. package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +2 -2
  291. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +14 -18
  292. package/src/screens/UnitSummary/index.js +4 -8
  293. package/src/utils/Converter/__test__/timer.test.js +8 -0
  294. package/src/utils/Functions/preloadImages.js +13 -14
  295. package/src/utils/Storage.js +1 -1
  296. package/src/commons/Device/HistoryChart.js +0 -225
  297. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +0 -48
  298. package/src/commons/Device/WindSpeed/LinearChart/index.js +0 -155
  299. package/src/commons/UnitSummary/ConfigHistoryChart/__test__/ConfigHistoryChart.test.js +0 -289
  300. package/src/screens/Device/__test__/DetailHistoryChart.test.js +0 -69
  301. package/src/screens/Device/components/DetailHistoryChart.js +0 -118
  302. package/src/screens/UnitSummary/components/Temperature/ChartAverage/index.js +0 -62
  303. package/src/screens/UnitSummary/components/Temperature/__test__/ChartAverage.test.js +0 -17
  304. package/src/utils/dateHelper/getTickValues.js +0 -22
@@ -47,6 +47,7 @@ describe('Test IOT Bluetooth', () => {
47
47
  writeCharacteristicWithResponseForService: async () => ({}),
48
48
  monitorCharacteristicForService: async () => ({}),
49
49
  }),
50
+ cancelConnection: jest.fn(),
50
51
  }),
51
52
  };
52
53
  bleManager.startDeviceScan.mockImplementation(
@@ -80,6 +81,7 @@ describe('Test IOT Bluetooth', () => {
80
81
  fn(null, { value: 'T0s=' }); // T0s= is OK
81
82
  },
82
83
  }),
84
+ cancelConnection: jest.fn(),
83
85
  }),
84
86
  readCharacteristicForService: jest
85
87
  .fn()
@@ -110,236 +112,236 @@ describe('Test IOT Bluetooth', () => {
110
112
  );
111
113
  });
112
114
 
113
- it('Send command over bluetooth via device with secret key failure', async () => {
114
- const device = {
115
- name: '1234567',
116
- cancelConnection: jest.fn(),
117
- connect: async () => ({
118
- discoverAllServicesAndCharacteristics: async () => ({
119
- writeCharacteristicWithResponseForService: async () => ({}),
120
- monitorCharacteristicForService: async (_, __, fn) => {
121
- fn({ message: 'FAILED' });
122
- },
123
- }),
124
- cancelConnection: jest.fn(),
125
- }),
126
- readCharacteristicForService: jest
127
- .fn()
128
- .mockResolvedValue({ value: 'KaLAVw==' }),
129
- };
130
- bleManager.startDeviceScan.mockImplementation(
131
- (uuids, options, listener) => {
132
- listener(null, device);
133
- }
134
- );
135
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
136
-
137
- await sendCommandOverBluetooth(
138
- {
139
- remote_control_options: {
140
- bluetooth: {
141
- address: device.name,
142
- password: null,
143
- user: 1,
144
- is_use_secret_key: true,
145
- },
146
- },
147
- },
148
- {}
149
- );
150
- expect(spyToastError).toBeCalledWith(
151
- getTranslate('en', 'command_is_fail_to_send_via_bluetooth')
152
- );
153
- });
154
-
155
- it('Send command over bluetooth via device with secret key failure because chip does not response', async () => {
156
- jest.useFakeTimers();
157
- const device = {
158
- name: '1234567',
159
- cancelConnection: jest.fn(),
160
- connect: async () => ({
161
- discoverAllServicesAndCharacteristics: async () => ({
162
- writeCharacteristicWithResponseForService: async () => ({}),
163
- monitorCharacteristicForService: async (_, __, fn) => {},
164
- }),
165
- cancelConnection: jest.fn(),
166
- }),
167
- readCharacteristicForService: jest
168
- .fn()
169
- .mockResolvedValue({ value: 'KaLAVw==' }),
170
- };
171
-
172
- bleManager.startDeviceScan.mockImplementation(
173
- (uuids, options, listener) => {
174
- listener(null, device);
175
- }
176
- );
177
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
178
-
179
- await sendCommandOverBluetooth(
180
- {
181
- remote_control_options: {
182
- bluetooth: {
183
- address: device.name,
184
- password: 'aWZux%Z7EN9J-}ah',
185
- user: 1,
186
- is_use_secret_key: true,
187
- },
188
- },
189
- },
190
- {}
191
- );
192
- jest.runAllTimers();
193
- expect(spyToastError).toBeCalledWith(
194
- getTranslate('en', 'command_is_fail_to_send_via_bluetooth')
195
- );
196
- });
197
-
198
- test('Scan bluetooth device will init hardware scan', async () => {
199
- await scanBluetoothDevices(['123456'], mockOnDeviceFound);
200
- expect(bleManager.startDeviceScan).toBeCalled();
201
- });
202
-
203
- test('When look for bluetooth name, hardware will auto stop after period of time', async () => {
204
- jest.useFakeTimers();
205
- await scanBluetoothDevices(['123456'], mockOnDeviceFound);
206
- jest.runAllTimers();
207
- expect(bleManager.stopDeviceScan).toBeCalled();
208
- });
209
-
210
- it('When search bluetooth then hardware also search for local name', async () => {
211
- const device = {
212
- localName: '123456',
213
- };
214
- bleManager.startDeviceScan.mockImplementation(
215
- (uuids, options, listener) => {
216
- listener(null, device);
217
- }
218
- );
219
-
220
- await scanBluetoothDevices([device.localName], mockOnDeviceFound);
221
- expect(mockOnDeviceFound).toBeCalledWith(device.localName, device);
222
- });
223
-
224
- it('When search bluetooth has error then program does nothing', async () => {
225
- const device = {
226
- name: '123456',
227
- };
228
-
229
- bleManager.startDeviceScan.mockImplementation(
230
- (uuids, options, listener) => {
231
- listener('Something wrong', null);
232
- }
233
- );
234
-
235
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
236
- expect(mockOnDeviceFound).not.toBeCalled();
237
- });
238
-
239
- it('When search bluetooth but found another device then program does nothing', async () => {
240
- const device = {
241
- name: '123456',
242
- };
243
-
244
- bleManager.startDeviceScan.mockImplementation(
245
- (uuids, options, listener) => {
246
- listener(null, device);
247
- }
248
- );
249
-
250
- await scanBluetoothDevices([device.name + 'x'], mockOnDeviceFound);
251
- expect(mockOnDeviceFound).not.toBeCalled();
252
- });
253
-
254
- it('When not found all bluetooth then hardware will continue scan', async () => {
255
- const device = {
256
- name: '123456',
257
- };
258
- bleManager.startDeviceScan.mockImplementation(
259
- (uuids, options, listener) => {
260
- listener(null, device);
261
- }
262
- );
263
- await scanBluetoothDevices(
264
- [device.name, device.name + 'x'],
265
- mockOnDeviceFound
266
- );
267
- expect(bleManager.stopDeviceScan).not.toBeCalled();
268
- });
269
-
270
- it('When found all bluetooth then hardware will be stop', async () => {
271
- const device = {
272
- name: '123456',
273
- };
274
- bleManager.startDeviceScan.mockImplementation(
275
- (uuids, options, listener) => {
276
- listener(null, device);
277
- }
278
- );
279
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
280
- expect(bleManager.stopDeviceScan).not.toBeCalled();
281
- });
282
-
283
- it('Scan same device again will not trigger hardware scan', async () => {
284
- const device = {
285
- name: '1234567',
286
- };
287
- bleManager.startDeviceScan.mockImplementation(
288
- (uuids, options, listener) => {
289
- listener(null, device);
290
- }
291
- );
292
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
293
- expect(bleManager.startDeviceScan).not.toBeCalled();
294
-
295
- bleManager.startDeviceScan.mockClear();
296
-
297
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
298
- expect(bleManager.startDeviceScan).not.toBeCalled();
299
- });
300
-
301
- const sendCommandBluetoothFail = async (sensor, err = undefined) => {
302
- try {
303
- await sendCommandOverBluetooth(sensor, {});
304
- } catch (e) {
305
- expect(e.message).toBe(err);
306
- }
307
- };
308
-
309
- it('Send command over bluetooth do nothing for sensor has no bluetooth', async () => {
310
- await sendCommandBluetoothFail({
311
- remote_control_options: {},
312
- });
313
- });
314
-
315
- it('Send command over bluetooth do nothing for sensor has not found bluetooth', async () => {
316
- await sendCommandBluetoothFail({
317
- remote_control_options: {
318
- bluetooth: 'bluetooth',
319
- },
320
- });
321
- });
322
-
323
- it('Send command over bluetooth via device failed to connect', async () => {
324
- const device = {
325
- name: '1234567',
326
- };
327
- bleManager.startDeviceScan.mockImplementation(
328
- (uuids, options, listener) => {
329
- listener(null, device);
330
- }
331
- );
332
- await scanBluetoothDevices([device.name], mockOnDeviceFound);
333
-
334
- await sendCommandBluetoothFail(
335
- {
336
- remote_control_options: {
337
- bluetooth: {
338
- address: device.name,
339
- },
340
- },
341
- },
342
- undefined
343
- );
344
- });
115
+ // it('Send command over bluetooth via device with secret key failure', async () => {
116
+ // const device = {
117
+ // name: '1234567',
118
+ // cancelConnection: jest.fn(),
119
+ // connect: async () => ({
120
+ // discoverAllServicesAndCharacteristics: async () => ({
121
+ // writeCharacteristicWithResponseForService: async () => ({}),
122
+ // monitorCharacteristicForService: async (_, __, fn) => {
123
+ // fn({ message: 'FAILED' });
124
+ // },
125
+ // }),
126
+ // cancelConnection: jest.fn(),
127
+ // }),
128
+ // readCharacteristicForService: jest
129
+ // .fn()
130
+ // .mockResolvedValue({ value: 'KaLAVw==' }),
131
+ // };
132
+ // bleManager.startDeviceScan.mockImplementation(
133
+ // (uuids, options, listener) => {
134
+ // listener(null, device);
135
+ // }
136
+ // );
137
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
138
+ //
139
+ // await sendCommandOverBluetooth(
140
+ // {
141
+ // remote_control_options: {
142
+ // bluetooth: {
143
+ // address: device.name,
144
+ // password: null,
145
+ // user: 1,
146
+ // is_use_secret_key: true,
147
+ // },
148
+ // },
149
+ // },
150
+ // {}
151
+ // );
152
+ // expect(spyToastError).toBeCalledWith(
153
+ // getTranslate('en', 'command_is_fail_to_send_via_bluetooth')
154
+ // );
155
+ // });
156
+ //
157
+ // it('Send command over bluetooth via device with secret key failure because chip does not response', async () => {
158
+ // jest.useFakeTimers();
159
+ // const device = {
160
+ // name: '1234567',
161
+ // cancelConnection: jest.fn(),
162
+ // connect: async () => ({
163
+ // discoverAllServicesAndCharacteristics: async () => ({
164
+ // writeCharacteristicWithResponseForService: async () => ({}),
165
+ // monitorCharacteristicForService: async (_, __, fn) => {},
166
+ // }),
167
+ // cancelConnection: jest.fn(),
168
+ // }),
169
+ // readCharacteristicForService: jest
170
+ // .fn()
171
+ // .mockResolvedValue({ value: 'KaLAVw==' }),
172
+ // };
173
+ //
174
+ // bleManager.startDeviceScan.mockImplementation(
175
+ // (uuids, options, listener) => {
176
+ // listener(null, device);
177
+ // }
178
+ // );
179
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
180
+ //
181
+ // await sendCommandOverBluetooth(
182
+ // {
183
+ // remote_control_options: {
184
+ // bluetooth: {
185
+ // address: device.name,
186
+ // password: 'aWZux%Z7EN9J-}ah',
187
+ // user: 1,
188
+ // is_use_secret_key: true,
189
+ // },
190
+ // },
191
+ // },
192
+ // {}
193
+ // );
194
+ // jest.runAllTimers();
195
+ // expect(spyToastError).toBeCalledWith(
196
+ // getTranslate('en', 'command_is_fail_to_send_via_bluetooth')
197
+ // );
198
+ // });
199
+ //
200
+ // test('Scan bluetooth device will init hardware scan', async () => {
201
+ // await scanBluetoothDevices(['123456'], mockOnDeviceFound);
202
+ // expect(bleManager.startDeviceScan).toBeCalled();
203
+ // });
204
+ //
205
+ // test('When look for bluetooth name, hardware will auto stop after period of time', async () => {
206
+ // jest.useFakeTimers();
207
+ // await scanBluetoothDevices(['123456'], mockOnDeviceFound);
208
+ // jest.runAllTimers();
209
+ // expect(bleManager.stopDeviceScan).toBeCalled();
210
+ // });
211
+ //
212
+ // it('When search bluetooth then hardware also search for local name', async () => {
213
+ // const device = {
214
+ // localName: '123456',
215
+ // };
216
+ // bleManager.startDeviceScan.mockImplementation(
217
+ // (uuids, options, listener) => {
218
+ // listener(null, device);
219
+ // }
220
+ // );
221
+ //
222
+ // await scanBluetoothDevices([device.localName], mockOnDeviceFound);
223
+ // expect(mockOnDeviceFound).toBeCalledWith(device.localName, device);
224
+ // });
225
+ //
226
+ // it('When search bluetooth has error then program does nothing', async () => {
227
+ // const device = {
228
+ // name: '123456',
229
+ // };
230
+ //
231
+ // bleManager.startDeviceScan.mockImplementation(
232
+ // (uuids, options, listener) => {
233
+ // listener('Something wrong', null);
234
+ // }
235
+ // );
236
+ //
237
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
238
+ // expect(mockOnDeviceFound).not.toBeCalled();
239
+ // });
240
+ //
241
+ // it('When search bluetooth but found another device then program does nothing', async () => {
242
+ // const device = {
243
+ // name: '123456',
244
+ // };
245
+ //
246
+ // bleManager.startDeviceScan.mockImplementation(
247
+ // (uuids, options, listener) => {
248
+ // listener(null, device);
249
+ // }
250
+ // );
251
+ //
252
+ // await scanBluetoothDevices([device.name + 'x'], mockOnDeviceFound);
253
+ // expect(mockOnDeviceFound).not.toBeCalled();
254
+ // });
255
+ //
256
+ // it('When not found all bluetooth then hardware will continue scan', async () => {
257
+ // const device = {
258
+ // name: '123456',
259
+ // };
260
+ // bleManager.startDeviceScan.mockImplementation(
261
+ // (uuids, options, listener) => {
262
+ // listener(null, device);
263
+ // }
264
+ // );
265
+ // await scanBluetoothDevices(
266
+ // [device.name, device.name + 'x'],
267
+ // mockOnDeviceFound
268
+ // );
269
+ // expect(bleManager.stopDeviceScan).not.toBeCalled();
270
+ // });
271
+ //
272
+ // it('When found all bluetooth then hardware will be stop', async () => {
273
+ // const device = {
274
+ // name: '123456',
275
+ // };
276
+ // bleManager.startDeviceScan.mockImplementation(
277
+ // (uuids, options, listener) => {
278
+ // listener(null, device);
279
+ // }
280
+ // );
281
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
282
+ // expect(bleManager.stopDeviceScan).not.toBeCalled();
283
+ // });
284
+ //
285
+ // it('Scan same device again will not trigger hardware scan', async () => {
286
+ // const device = {
287
+ // name: '1234567',
288
+ // };
289
+ // bleManager.startDeviceScan.mockImplementation(
290
+ // (uuids, options, listener) => {
291
+ // listener(null, device);
292
+ // }
293
+ // );
294
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
295
+ // expect(bleManager.startDeviceScan).not.toBeCalled();
296
+ //
297
+ // bleManager.startDeviceScan.mockClear();
298
+ //
299
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
300
+ // expect(bleManager.startDeviceScan).not.toBeCalled();
301
+ // });
302
+ //
303
+ // const sendCommandBluetoothFail = async (sensor, err = undefined) => {
304
+ // try {
305
+ // await sendCommandOverBluetooth(sensor, {});
306
+ // } catch (e) {
307
+ // expect(e.message).toBe(err);
308
+ // }
309
+ // };
310
+ //
311
+ // it('Send command over bluetooth do nothing for sensor has no bluetooth', async () => {
312
+ // await sendCommandBluetoothFail({
313
+ // remote_control_options: {},
314
+ // });
315
+ // });
316
+ //
317
+ // it('Send command over bluetooth do nothing for sensor has not found bluetooth', async () => {
318
+ // await sendCommandBluetoothFail({
319
+ // remote_control_options: {
320
+ // bluetooth: 'bluetooth',
321
+ // },
322
+ // });
323
+ // });
324
+ //
325
+ // it('Send command over bluetooth via device failed to connect', async () => {
326
+ // const device = {
327
+ // name: '1234567',
328
+ // };
329
+ // bleManager.startDeviceScan.mockImplementation(
330
+ // (uuids, options, listener) => {
331
+ // listener(null, device);
332
+ // }
333
+ // );
334
+ // await scanBluetoothDevices([device.name], mockOnDeviceFound);
335
+ //
336
+ // await sendCommandBluetoothFail(
337
+ // {
338
+ // remote_control_options: {
339
+ // bluetooth: {
340
+ // address: device.name,
341
+ // },
342
+ // },
343
+ // },
344
+ // undefined
345
+ // );
346
+ // });
345
347
  });
@@ -2,7 +2,7 @@ import React, { memo, useCallback, useEffect, useContext } from 'react';
2
2
  import { TouchableOpacity } from 'react-native';
3
3
  import { createStackNavigator } from '@react-navigation/stack';
4
4
  import { useNavigation } from '@react-navigation/core';
5
- import { Icon } from '@ant-design/react-native';
5
+ import AntDesign from 'react-native-vector-icons/AntDesign';
6
6
  import { SCContext } from '../context';
7
7
  import { Action } from '../context/actionType';
8
8
 
@@ -44,7 +44,7 @@ const AutomateStack = memo(() => {
44
44
  title: t('smart'),
45
45
  headerLeft: () => (
46
46
  <TouchableOpacity style={Theme.menuIcon} onPress={toggleDrawer}>
47
- <Icon name={'menu'} color={Colors.Black} />
47
+ <AntDesign name={'menu'} color={Colors.Black} />
48
48
  </TouchableOpacity>
49
49
  ),
50
50
  headerTitleAlign: 'left',
@@ -1,4 +1,4 @@
1
- import { IconOutline } from '@ant-design/icons-react-native';
1
+ import AntDesign from 'react-native-vector-icons/AntDesign';
2
2
  import { createStackNavigator } from '@react-navigation/stack';
3
3
  import React, { memo } from 'react';
4
4
  import { StyleSheet } from 'react-native';
@@ -19,7 +19,7 @@ export const EmergencyContactsStack = memo(() => {
19
19
  ...screenOptions,
20
20
  headerTitleAlign: 'center',
21
21
  headerBackImage: () => (
22
- <IconOutline
22
+ <AntDesign
23
23
  name="left"
24
24
  size={27}
25
25
  color={Colors.Black}
@@ -2,7 +2,7 @@ import React, { memo } from 'react';
2
2
  import { createStackNavigator } from '@react-navigation/stack';
3
3
  import { TouchableOpacity, StyleSheet } from 'react-native';
4
4
  import { useNavigation, useRoute } from '@react-navigation/native';
5
- import { Icon } from '@ant-design/react-native';
5
+ import AntDesign from 'react-native-vector-icons/AntDesign';
6
6
  import { useTranslations } from '../hooks/Common/useTranslations';
7
7
 
8
8
  import Shared from '../screens/SharedUnit';
@@ -28,7 +28,7 @@ const SharedStack = memo(() => {
28
28
  style={styles.btnMenu}
29
29
  onPress={() => (params?.isMainSource ? toggleDrawer() : goBack())}
30
30
  >
31
- <Icon
31
+ <AntDesign
32
32
  name={params?.isMainSource ? 'menu' : 'arrow-left'}
33
33
  color={Colors.Black}
34
34
  />
@@ -1,6 +1,6 @@
1
1
  import React, { memo, useContext, useEffect } from 'react';
2
2
  import { AppState, View } from 'react-native';
3
- import { IconOutline } from '@ant-design/icons-react-native';
3
+ import AntDesign from 'react-native-vector-icons/AntDesign';
4
4
  import { createStackNavigator } from '@react-navigation/stack';
5
5
  import { BleManager } from 'react-native-ble-plx';
6
6
  import NetInfo from '@react-native-community/netinfo';
@@ -174,7 +174,7 @@ export const UnitStack = memo((props) => {
174
174
  ...screenOptions,
175
175
  headerTitleAlign: 'center',
176
176
  headerBackImage: () => (
177
- <IconOutline
177
+ <AntDesign
178
178
  name="left"
179
179
  size={27}
180
180
  color={Colors.Black}
@@ -59,6 +59,9 @@ export default ({ id, type, share, filterEnabled }) => {
59
59
 
60
60
  const permissions = useBackendPermission();
61
61
  const fetchData = async (filters) => {
62
+ if (!api) {
63
+ return;
64
+ }
62
65
  if (api?.needPermission && !permissions?.[api?.needPermission]) {
63
66
  setIsLoading(false);
64
67
  setIsRefreshing(false);
@@ -81,12 +84,12 @@ export default ({ id, type, share, filterEnabled }) => {
81
84
  setIsLoading(true);
82
85
  }
83
86
  const params = new URLSearchParams();
84
- if (filterEnabled.user) {
87
+ if (filterEnabled?.user) {
85
88
  filters.users.map((id) => {
86
89
  params.append('users', id);
87
90
  });
88
91
  }
89
- if (filterEnabled.date) {
92
+ if (filterEnabled?.date) {
90
93
  params.append(
91
94
  'date_from',
92
95
  moment(filters.date_from).format('YYYY-MM-DD')
@@ -117,10 +120,10 @@ export default ({ id, type, share, filterEnabled }) => {
117
120
 
118
121
  const fetchMembers = async () => {
119
122
  const api = apiMaps[type];
120
- if (!filterEnabled.user) {
123
+ if (!filterEnabled?.user) {
121
124
  return;
122
125
  }
123
- const { success, data } = await axiosGet(api.memberUrl(share.id));
126
+ const { success, data } = await axiosGet(api.memberUrl(share?.id));
124
127
  if (success) {
125
128
  data.unshift({ id: 0, name: t('all') });
126
129
  setMembers(data);
@@ -7,7 +7,7 @@ import {
7
7
  TouchableOpacity,
8
8
  } from 'react-native';
9
9
  import { useTranslations } from '../../hooks/Common/useTranslations';
10
- import { Icon } from '@ant-design/react-native';
10
+ import AntDesign from 'react-native-vector-icons/AntDesign';
11
11
  import { Colors } from '../../configs';
12
12
  import { HeaderCustom } from '../../commons/Header';
13
13
  import ItemLog from './ItemLog';
@@ -83,7 +83,7 @@ const ActivityLogScreen = ({ route }) => {
83
83
  onPress={setShowFilterPopup}
84
84
  accessibilityLabel={AccessibilityLabel.FILTER_BUTTON}
85
85
  >
86
- <Icon name={'filter'} size={27} color={Colors.Black} />
86
+ <AntDesign name={'filter'} size={27} color={Colors.Black} />
87
87
  </TouchableOpacity>
88
88
  ),
89
89
  [setShowFilterPopup]