@eohjsc/react-native-smart-city 0.2.20 → 0.2.26
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.
- package/README.md +1 -1
- package/assets/images/Add.svg +5 -0
- package/assets/images/AddLocationMaps/Point.svg +3 -0
- package/assets/images/CheckCircle.svg +4 -0
- package/assets/images/Close.svg +3 -0
- package/assets/images/HowToStart.svg +14 -0
- package/assets/images/OneTap.svg +14 -0
- package/assets/images/OneTap@1x.svg +14 -0
- package/assets/images/Rearrange.svg +3 -0
- package/assets/images/Schedule.svg +39 -0
- package/assets/images/WeatherChange.svg +49 -0
- package/package.json +12 -2
- package/src/Images/Common/ActiveButton.png +0 -0
- package/src/Images/Common/ActiveButton@2x.png +0 -0
- package/src/Images/Common/ActiveButton@3x.png +0 -0
- package/src/Images/Common/arrow-back.png +0 -0
- package/src/Images/Common/checked@2x.png +0 -0
- package/src/Images/Common/checked@3x.png +0 -0
- package/src/Images/Common/file.png +0 -0
- package/src/Images/Common/fullscreen.png +0 -0
- package/src/Images/Common/refresh.png +0 -0
- package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
- package/src/commons/ActionGroup/OnOffTemplate/index.js +4 -4
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +7 -4
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +12 -3
- package/src/commons/ActionGroup/ThreeButtonTemplate.js +13 -6
- package/src/commons/ActionGroup/ThreeButtonTemplateStyle.js +1 -1
- package/src/commons/ActionGroup/TimerActionTemplate.js +158 -33
- package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
- package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -45
- package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
- package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
- package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
- package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
- package/src/commons/ActionGroup/__test__/index.test.js +39 -107
- package/src/commons/ActionGroup/hooks/useDropdownAction.js +2 -1
- package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
- package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
- package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
- package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
- package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
- package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
- package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
- package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
- package/src/commons/ActionTemplate/index.js +69 -0
- package/src/commons/Automate/ItemAddNewScriptAction.js +30 -0
- package/src/commons/Automate/ItemAddNewScriptActionStyles.js +38 -0
- package/src/commons/Automate/ItemAutomate.js +33 -0
- package/src/commons/Automate/ItemAutomateStyles.js +33 -0
- package/src/commons/Automate/ItemScriptAction.js +45 -0
- package/src/commons/Automate/ItemScriptActionStyles.js +42 -0
- package/src/commons/BottomScrollPicker/index.js +58 -0
- package/src/commons/BottomScrollPicker/styles.js +13 -0
- package/src/commons/BottomSheet/index.js +36 -0
- package/src/commons/BottomSheet/styles.js +37 -0
- package/src/commons/Button/index.js +6 -1
- package/src/commons/CameraDevice/index.js +2 -1
- package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
- package/src/commons/ChartLoading/index.js +2 -1
- package/src/commons/DateTimeRangeChange/index.js +2 -1
- package/src/commons/Device/ConnectedViewHeader.js +3 -1
- package/src/commons/Device/DeviceAlertStatus.js +5 -2
- package/src/commons/Device/DisconnectedView.js +34 -26
- package/src/commons/Device/Emergency/EmergencyButton.js +2 -1
- package/src/commons/Device/Emergency/EmergencyDetail.js +2 -1
- package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
- package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
- package/src/commons/Device/FlatListItems.js +3 -2
- package/src/commons/Device/FooterInfo.js +2 -1
- package/src/commons/Device/HistoryChart.js +2 -1
- package/src/commons/Device/ItemAddNew/index.js +6 -1
- package/src/commons/Device/SensorConnectedStatus.js +2 -1
- package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
- package/src/commons/Device/WindDirection/Compass/index.js +1 -1
- package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
- package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
- package/src/commons/Device/WindSpeed/LinearChart/index.js +2 -1
- package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
- package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -5
- package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
- package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
- package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
- package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
- package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
- package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
- package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -1
- package/src/commons/EmergencyButton/AlertSent.js +3 -2
- package/src/commons/Explore/CityItem/index.js +2 -1
- package/src/commons/Explore/HeaderExplore/index.js +2 -1
- package/src/commons/Explore/HeaderLabel/index.js +2 -1
- package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
- package/src/commons/Explore/SearchBox/index.js +2 -1
- package/src/commons/Explore/__test__/CityItem.test.js +13 -15
- package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
- package/src/commons/Header/HeaderCustom.js +17 -1
- package/src/commons/Header/Styles/HeaderCustomStyles.js +2 -2
- package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
- package/src/commons/HeaderAni/index.js +6 -3
- package/src/commons/IconComponent/index.js +18 -3
- package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
- package/src/commons/ImagePicker/index.js +3 -1
- package/src/commons/MediaPlayer/index.js +2 -1
- package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
- package/src/commons/MediaPlayerDetail/index.js +4 -1
- package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
- package/src/commons/MenuActionAddnew/index.js +2 -1
- package/src/commons/Modal/ModalBottom.js +51 -0
- package/src/commons/Modal/ModalFullVideo.js +2 -1
- package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
- package/src/commons/Modal/index.js +2 -1
- package/src/commons/NavBar/index.js +2 -2
- package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
- package/src/commons/SelectActionCard/index.js +30 -0
- package/src/commons/Sharing/DevicePermissionsCheckbox.js +2 -1
- package/src/commons/Sharing/MemberList.js +3 -1
- package/src/commons/Sharing/RowMember.js +3 -2
- package/src/commons/Sharing/StationDevicePermissions.js +2 -1
- package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
- package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
- package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
- package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
- package/src/commons/SubUnit/OneTap/ItemOneTap.js +97 -0
- package/src/commons/SubUnit/OneTap/ItemOneTapStyles.js +41 -0
- package/src/commons/SubUnit/OneTap/OneTapStyles.js +36 -0
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +149 -0
- package/src/commons/SubUnit/OneTap/index.js +39 -0
- package/src/commons/SubUnit/ShortDetail.js +11 -6
- package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
- package/src/commons/Today/__test__/Today.test.js +9 -1
- package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
- package/src/commons/Today/index.js +2 -1
- package/src/commons/Unit/SharedUnit.js +2 -1
- package/src/commons/UnitSummary/AirQuality/SegmentedRoundDisplay/index.js +1 -2
- package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
- package/src/commons/UnitSummary/AirQuality/index.js +5 -120
- package/src/commons/UnitSummary/AirQuality/styles.js +112 -0
- package/src/commons/UnitSummary/TotalPowerConsumption/index.js +2 -1
- package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
- package/src/commons/WheelDateTimePicker/Picker.js +57 -0
- package/src/commons/WheelDateTimePicker/index.js +160 -0
- package/src/commons/WheelDateTimePicker/styles.js +21 -0
- package/src/configs/API.js +25 -0
- package/src/configs/Colors.js +1 -0
- package/src/configs/Constants.js +46 -0
- package/src/configs/Images.js +1 -0
- package/src/configs/SCConfig.js +7 -0
- package/src/context/SCContext.tsx +7 -37
- package/src/context/actionType.ts +11 -0
- package/src/context/mockStore.ts +49 -0
- package/src/context/reducer.ts +23 -0
- package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
- package/src/hooks/Common/index.js +2 -0
- package/src/hooks/Common/useGetIdUser.js +9 -0
- package/src/hooks/Common/useTranslations.ts +34 -0
- package/src/iot/Monitor.js +2 -1
- package/src/iot/RemoteControl/Bluetooth.js +2 -6
- package/src/iot/RemoteControl/GoogleHome.js +1 -1
- package/src/iot/RemoteControl/Internet.js +1 -1
- package/src/iot/RemoteControl/LG.js +57 -15
- package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -5
- package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -3
- package/src/iot/RemoteControl/__test__/Internet.test.js +1 -8
- package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
- package/src/iot/RemoteControl/index.js +1 -1
- package/src/iot/states.js +1 -0
- package/src/navigations/SharedStack.js +2 -1
- package/src/navigations/UnitStack.js +62 -1
- package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
- package/src/screens/AQIGuide/index.js +2 -2
- package/src/screens/ActivityLog/__test__/index.test.js +14 -39
- package/src/screens/ActivityLog/index.js +2 -1
- package/src/screens/AddCommon/SelectSubUnit.js +5 -4
- package/src/screens/AddCommon/SelectUnit.js +3 -2
- package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
- package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
- package/src/screens/AddLocationMaps/index.js +2 -1
- package/src/screens/AddNewAction/Device/DeviceStyles.js +43 -0
- package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
- package/src/screens/AddNewAction/Device/index.js +33 -0
- package/src/screens/AddNewAction/SelectAction.js +152 -0
- package/src/screens/AddNewAction/SelectDevice.js +120 -0
- package/src/screens/AddNewAction/Styles/SelectActionStyles.js +24 -0
- package/src/screens/AddNewAction/Styles/SelectDeviceStyles.js +36 -0
- package/src/screens/AddNewAction/__test__/SelectAction.test.js +172 -0
- package/src/screens/AddNewAction/__test__/SelectDevice.test.js +191 -0
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +55 -0
- package/src/screens/AddNewAutoSmart/index.js +85 -0
- package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
- package/src/screens/AddNewDevice/ConnectDevices.js +2 -1
- package/src/screens/AddNewDevice/ConnectingDevices.js +2 -1
- package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -13
- package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -7
- package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -6
- package/src/screens/AddNewDevice/hooks/useStateAlertRename.js +2 -1
- package/src/screens/AddNewDevice/index.js +2 -1
- package/src/screens/AddNewGateway/ConnectedGateway.js +2 -1
- package/src/screens/AddNewGateway/ConnectingGateway.js +99 -24
- package/src/screens/AddNewGateway/ConnectingGatewayStyles.js +92 -0
- package/src/screens/AddNewGateway/SetupGatewayWifi.js +3 -2
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -72
- package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -4
- package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -10
- package/src/screens/AddNewGateway/hooks/useStateAlertRename.js +2 -1
- package/src/screens/AddNewGateway/index.js +2 -1
- package/src/screens/AddNewOneTap/AddNewOneTapStyles.js +43 -0
- package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +129 -0
- package/src/screens/AddNewOneTap/index.js +80 -0
- package/src/screens/AddNewScriptAction/AddNewScriptActionStyles.js +28 -0
- package/src/screens/AddNewScriptAction/index.js +100 -0
- package/src/screens/AllCamera/index.js +2 -1
- package/src/screens/Device/HeaderDevice/styles.js +2 -2
- package/src/screens/Device/__test__/detail.test.js +26 -18
- package/src/screens/Device/detail.js +56 -28
- package/src/screens/Device/hooks/useCountUp.js +4 -0
- package/src/screens/Device/hooks/useEmergencyButton.js +3 -2
- package/src/screens/Device/styles.js +5 -1
- package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
- package/src/screens/DeviceInfo/index.js +2 -1
- package/src/screens/EditActionsList/Styles/indexStyles.js +84 -0
- package/src/screens/EditActionsList/index.js +186 -0
- package/src/screens/EmergencyContacts/EmergencyContactsAddNew.js +3 -2
- package/src/screens/EmergencyContacts/EmergencyContactsList.js +9 -2
- package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +2 -1
- package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -18
- package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -23
- package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
- package/src/screens/EmergencyContacts/hook.js +3 -2
- package/src/screens/Explore/index.js +3 -2
- package/src/screens/GuestInfo/components/AccessScheduleItem.js +27 -0
- package/src/screens/GuestInfo/components/AccessScheduleSheet.js +193 -0
- package/src/screens/GuestInfo/components/HeaderGuestInfo.js +31 -0
- package/src/screens/GuestInfo/components/RecurringDetail.js +99 -0
- package/src/screens/GuestInfo/components/RowGuestInfo.js +31 -0
- package/src/screens/GuestInfo/components/TemporaryDetail.js +46 -0
- package/src/screens/GuestInfo/constant.js +59 -0
- package/src/screens/GuestInfo/index.js +151 -0
- package/src/screens/GuestInfo/styles/AccessScheduleDetailStyles.js +31 -0
- package/src/screens/GuestInfo/styles/AccessScheduleItemStyles.js +22 -0
- package/src/screens/GuestInfo/styles/HeaderGuestInfoStyles.js +31 -0
- package/src/screens/GuestInfo/styles/indexStyles.js +38 -0
- package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
- package/src/screens/ManageAccess/hooks/index.js +4 -0
- package/src/screens/ManageAccess/index.js +49 -20
- package/src/screens/ManageAccess/styles/ManageAccessStyles.js +3 -0
- package/src/screens/PlayBackCamera/index.js +9 -5
- package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
- package/src/screens/ScanChipQR/components/QRScan/index.js +2 -1
- package/src/screens/ScriptDetail/Styles/indexStyles.js +143 -0
- package/src/screens/ScriptDetail/index.js +243 -0
- package/src/screens/SharedUnit/TabHeader.js +2 -1
- package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
- package/src/screens/SharedUnit/index.js +3 -2
- package/src/screens/Sharing/MemberList.js +2 -1
- package/src/screens/Sharing/SelectPermission.js +2 -1
- package/src/screens/Sharing/SelectUser.js +3 -2
- package/src/screens/Sharing/__test__/MemberList.test.js +17 -13
- package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
- package/src/screens/Sharing/__test__/SelectUser.test.js +33 -15
- package/src/screens/Sharing/hooks/index.js +22 -17
- package/src/screens/SubUnit/AddSubUnit.js +3 -2
- package/src/screens/SubUnit/Detail.js +5 -4
- package/src/screens/SubUnit/ManageSubUnit.js +10 -9
- package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -11
- package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +42 -31
- package/src/screens/SyncLGDevice/AddLGDevice.js +3 -2
- package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
- package/src/screens/TDSGuide/index.js +2 -1
- package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
- package/src/screens/UVIndexGuide/index.js +2 -1
- package/src/screens/Unit/AddMenu.js +3 -2
- package/src/screens/Unit/Detail.js +65 -20
- package/src/screens/Unit/ManageUnit/index.js +4 -3
- package/src/screens/Unit/ManageUnit.js +5 -4
- package/src/screens/Unit/MoreMenu.js +3 -2
- package/src/screens/Unit/SelectLocation.js +8 -2
- package/src/screens/Unit/SelectLocationStyles.js +11 -0
- package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
- package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
- package/src/screens/Unit/__test__/Detail.test.js +92 -33
- package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
- package/src/screens/Unit/components/Header/index.js +2 -1
- package/src/screens/Unit/components/ListMyAllUnit/index.js +2 -1
- package/src/screens/Unit/components/MyUnit/index.js +2 -1
- package/src/screens/Unit/components/SearchLocation/index.js +2 -1
- package/src/screens/Unit/components/SharedUnit/index.js +2 -1
- package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
- package/src/screens/UnitSummary/__test__/index.test.js +12 -4
- package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
- package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +2 -1
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
- package/src/screens/UnitSummary/components/PowerConsumption/index.js +2 -1
- package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
- package/src/screens/UnitSummary/components/Temperature/index.js +2 -1
- package/src/screens/UnitSummary/components/TotalPowerConsumption/index.js +2 -1
- package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
- package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
- package/src/screens/UnitSummary/components/UvIndex/index.js +2 -1
- package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
- package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -1
- package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
- package/src/screens/UnitSummary/index.js +2 -1
- package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
- package/src/screens/WaterQualityGuide/index.js +2 -1
- package/src/utils/Converter/array.js +4 -0
- package/src/utils/Converter/time.js +29 -4
- package/src/utils/I18n/index.ts +6 -0
- package/src/utils/I18n/translations/en.json +48 -2
- package/src/utils/I18n/translations/vi.json +45 -1
- package/src/utils/I18n/translations.ts +45 -0
- package/src/utils/Route/index.js +8 -0
- package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
- package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
- package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
- package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
- package/src/commons/Explore/__test__/HeaderExplore.test.js +0 -21
- package/src/commons/Header/__test__/Header.test.js +0 -24
- package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
- package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
- package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
- package/src/iot/RemoteControl/__test__/index.test.js +0 -101
- package/src/iot/__test__/Monitor.test.js +0 -119
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
- package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -358
- package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/__test__/MyUnit.test.js +0 -85
- package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
- package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
- package/src/utils/Converter/__test__/time.test.js +0 -126
- package/src/utils/I18n/index.js +0 -19
- package/src/utils/I18n/index.test.js +0 -7
|
@@ -7,6 +7,8 @@ import axios from 'axios';
|
|
|
7
7
|
import { SensorItem, TitleCheckBox } from '../Components';
|
|
8
8
|
import { ViewButtonBottom } from '../../../commons';
|
|
9
9
|
import Routes from '../../../utils/Route';
|
|
10
|
+
import { SCProvider } from '../../../context';
|
|
11
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
10
12
|
|
|
11
13
|
jest.mock('axios');
|
|
12
14
|
|
|
@@ -31,6 +33,12 @@ jest.mock('@react-navigation/native', () => {
|
|
|
31
33
|
};
|
|
32
34
|
});
|
|
33
35
|
|
|
36
|
+
const wrapComponent = (route) => (
|
|
37
|
+
<SCProvider initState={mockSCStore({})}>
|
|
38
|
+
<SelectPermission route={route} />
|
|
39
|
+
</SCProvider>
|
|
40
|
+
);
|
|
41
|
+
|
|
34
42
|
describe('Test SelectPermission', () => {
|
|
35
43
|
let tree;
|
|
36
44
|
let route = { params: { unit: null } };
|
|
@@ -81,7 +89,7 @@ describe('Test SelectPermission', () => {
|
|
|
81
89
|
it('test unit null', () => {
|
|
82
90
|
Platform.OS = 'android';
|
|
83
91
|
act(() => {
|
|
84
|
-
tree = create(
|
|
92
|
+
tree = create(wrapComponent(route));
|
|
85
93
|
});
|
|
86
94
|
expect(axios.get).not.toBeCalled();
|
|
87
95
|
});
|
|
@@ -93,11 +101,11 @@ describe('Test SelectPermission', () => {
|
|
|
93
101
|
route.params.unit = 1;
|
|
94
102
|
axios.get.mockImplementationOnce(() => ({ status: 200, data: [] }));
|
|
95
103
|
act(() => {
|
|
96
|
-
tree = create(
|
|
104
|
+
tree = create(wrapComponent(route));
|
|
97
105
|
});
|
|
98
106
|
const instance = tree.root;
|
|
99
107
|
const TextElement = instance.findAllByType(Text);
|
|
100
|
-
expect(TextElement[2].props.children).toBe('
|
|
108
|
+
expect(TextElement[2].props.children).toBe('No data');
|
|
101
109
|
});
|
|
102
110
|
|
|
103
111
|
it('test get unit fail', () => {
|
|
@@ -106,17 +114,17 @@ describe('Test SelectPermission', () => {
|
|
|
106
114
|
route.params.unit = 1;
|
|
107
115
|
axios.get.mockImplementationOnce(() => ({ status: 400, data: [] }));
|
|
108
116
|
act(() => {
|
|
109
|
-
tree = create(
|
|
117
|
+
tree = create(wrapComponent(route));
|
|
110
118
|
});
|
|
111
119
|
const instance = tree.root;
|
|
112
120
|
const TextElement = instance.findAllByType(Text);
|
|
113
|
-
expect(TextElement[2].props.children).toBe('
|
|
121
|
+
expect(TextElement[2].props.children).toBe('No data');
|
|
114
122
|
});
|
|
115
123
|
|
|
116
124
|
it('render list', () => {
|
|
117
125
|
mocSetdata();
|
|
118
126
|
act(() => {
|
|
119
|
-
tree = create(
|
|
127
|
+
tree = create(wrapComponent(route));
|
|
120
128
|
});
|
|
121
129
|
const instance = tree.root;
|
|
122
130
|
const FlatListElement = instance.findAllByType(FlatList);
|
|
@@ -151,7 +159,7 @@ describe('Test SelectPermission', () => {
|
|
|
151
159
|
it('test onTickedChild function', () => {
|
|
152
160
|
mocSetdata();
|
|
153
161
|
act(() => {
|
|
154
|
-
tree = create(
|
|
162
|
+
tree = create(wrapComponent(route));
|
|
155
163
|
});
|
|
156
164
|
const instance = tree.root;
|
|
157
165
|
const SensorItemElement = instance.findAllByType(SensorItem);
|
|
@@ -165,7 +173,7 @@ describe('Test SelectPermission', () => {
|
|
|
165
173
|
it('test ViewButtonBottom', () => {
|
|
166
174
|
mocSetdata();
|
|
167
175
|
act(() => {
|
|
168
|
-
tree = create(
|
|
176
|
+
tree = create(wrapComponent(route));
|
|
169
177
|
});
|
|
170
178
|
const instance = tree.root;
|
|
171
179
|
const ViewButtonBottomElement = instance.findAllByType(ViewButtonBottom);
|
|
@@ -3,12 +3,20 @@ import { create, act } from 'react-test-renderer';
|
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
|
|
5
5
|
import SelectUser from '../SelectUser';
|
|
6
|
-
import { t } from 'i18n-js';
|
|
7
6
|
import { TESTID } from '../../../configs/Constants';
|
|
8
7
|
import { ViewButtonBottom, Button } from '../../../commons';
|
|
9
8
|
import _TextInput from '../../../commons/Form/TextInput';
|
|
10
9
|
import AccountList from '../../../commons/Auth/AccountList';
|
|
11
10
|
import { API } from '../../../configs';
|
|
11
|
+
import { getTranslate } from '../../../utils/I18n';
|
|
12
|
+
import { SCProvider } from '../../../context';
|
|
13
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
14
|
+
|
|
15
|
+
const wrapComponent = (route) => (
|
|
16
|
+
<SCProvider initState={mockSCStore({})}>
|
|
17
|
+
<SelectUser route={route} />
|
|
18
|
+
</SCProvider>
|
|
19
|
+
);
|
|
12
20
|
|
|
13
21
|
const mockedNavigate = jest.fn();
|
|
14
22
|
const mockedGoBack = jest.fn();
|
|
@@ -73,7 +81,7 @@ describe('test SelectUser container', () => {
|
|
|
73
81
|
|
|
74
82
|
test('create', async () => {
|
|
75
83
|
await act(async () => {
|
|
76
|
-
tree = create(
|
|
84
|
+
tree = create(wrapComponent(route));
|
|
77
85
|
});
|
|
78
86
|
const instance = tree.root;
|
|
79
87
|
const textTitle = findByTestId(instance, TESTID.SELECT_USER_ADD_USER_TITLE);
|
|
@@ -81,18 +89,26 @@ describe('test SelectUser container', () => {
|
|
|
81
89
|
instance,
|
|
82
90
|
TESTID.SELECT_USER_ADD_USER_SUB_TITLE
|
|
83
91
|
);
|
|
84
|
-
expect(textTitle.props.children).toEqual(
|
|
85
|
-
|
|
92
|
+
expect(textTitle.props.children).toEqual(
|
|
93
|
+
getTranslate('en', 'add_user_title')
|
|
94
|
+
);
|
|
95
|
+
expect(textSubTitle.props.children).toEqual(
|
|
96
|
+
getTranslate('en', 'add_user_sub_title')
|
|
97
|
+
);
|
|
86
98
|
});
|
|
87
99
|
|
|
88
100
|
test('viewButtonBottom and onLeftClick', async () => {
|
|
89
101
|
await act(async () => {
|
|
90
|
-
tree = create(
|
|
102
|
+
tree = create(wrapComponent(route));
|
|
91
103
|
});
|
|
92
104
|
const instance = tree.root;
|
|
93
105
|
const viewButtonBottom = instance.findByType(ViewButtonBottom);
|
|
94
|
-
expect(viewButtonBottom.props.leftTitle).toEqual(
|
|
95
|
-
|
|
106
|
+
expect(viewButtonBottom.props.leftTitle).toEqual(
|
|
107
|
+
getTranslate('en', 'cancel')
|
|
108
|
+
);
|
|
109
|
+
expect(viewButtonBottom.props.rightTitle).toEqual(
|
|
110
|
+
getTranslate('en', 'done')
|
|
111
|
+
);
|
|
96
112
|
act(() => {
|
|
97
113
|
viewButtonBottom.props.onLeftClick();
|
|
98
114
|
});
|
|
@@ -101,7 +117,7 @@ describe('test SelectUser container', () => {
|
|
|
101
117
|
|
|
102
118
|
test('viewButtonBottom onRightClick', async () => {
|
|
103
119
|
await act(async () => {
|
|
104
|
-
tree = create(
|
|
120
|
+
tree = create(wrapComponent(route));
|
|
105
121
|
});
|
|
106
122
|
const instance = tree.root;
|
|
107
123
|
const viewButtonBottom = instance.findByType(ViewButtonBottom);
|
|
@@ -121,16 +137,18 @@ describe('test SelectUser container', () => {
|
|
|
121
137
|
mockAxiosPost(response);
|
|
122
138
|
|
|
123
139
|
await act(async () => {
|
|
124
|
-
tree = await create(
|
|
140
|
+
tree = await create(wrapComponent(route));
|
|
125
141
|
});
|
|
126
142
|
const instance = tree.root;
|
|
127
143
|
|
|
128
144
|
const textInput = instance.findByType(_TextInput);
|
|
129
|
-
expect(textInput.props.placeholder).toEqual(
|
|
145
|
+
expect(textInput.props.placeholder).toEqual(
|
|
146
|
+
getTranslate('en', 'phone_number_or_email')
|
|
147
|
+
);
|
|
130
148
|
expect(textInput.props.errorText).toEqual('');
|
|
131
149
|
|
|
132
150
|
const button = instance.findByType(Button);
|
|
133
|
-
expect(button.props.title).toEqual(
|
|
151
|
+
expect(button.props.title).toEqual(getTranslate('en', 'add_user_invite'));
|
|
134
152
|
expect(button.props.type).toEqual('primary');
|
|
135
153
|
|
|
136
154
|
let accountList = instance.findAllByType(AccountList);
|
|
@@ -173,7 +191,7 @@ describe('test SelectUser container', () => {
|
|
|
173
191
|
};
|
|
174
192
|
|
|
175
193
|
await act(async () => {
|
|
176
|
-
tree = create(
|
|
194
|
+
tree = create(wrapComponent(route));
|
|
177
195
|
});
|
|
178
196
|
const instance = tree.root;
|
|
179
197
|
const textInput = instance.findByType(_TextInput);
|
|
@@ -210,7 +228,7 @@ describe('test SelectUser container', () => {
|
|
|
210
228
|
mockAxiosPost(response);
|
|
211
229
|
|
|
212
230
|
await act(async () => {
|
|
213
|
-
tree = create(
|
|
231
|
+
tree = create(wrapComponent(route));
|
|
214
232
|
});
|
|
215
233
|
const instance = tree.root;
|
|
216
234
|
|
|
@@ -228,7 +246,7 @@ describe('test SelectUser container', () => {
|
|
|
228
246
|
});
|
|
229
247
|
|
|
230
248
|
expect(textInput.props.errorText).toEqual(
|
|
231
|
-
|
|
249
|
+
getTranslate('en', 'invalid_phone_number_or_email')
|
|
232
250
|
);
|
|
233
251
|
expect(axios.post).not.toHaveBeenCalled();
|
|
234
252
|
});
|
|
@@ -238,7 +256,7 @@ describe('test SelectUser container', () => {
|
|
|
238
256
|
mockAxiosPost(response);
|
|
239
257
|
|
|
240
258
|
await act(async () => {
|
|
241
|
-
tree = create(
|
|
259
|
+
tree = create(wrapComponent(route));
|
|
242
260
|
});
|
|
243
261
|
const instance = tree.root;
|
|
244
262
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from 'react';
|
|
2
2
|
import { useNavigation } from '@react-navigation/native';
|
|
3
|
-
import {
|
|
3
|
+
import { useTranslations } from '../../../hooks/Common/useTranslations';
|
|
4
4
|
|
|
5
5
|
import { API } from '../../../configs';
|
|
6
6
|
import Routes from '../../../utils/Route';
|
|
@@ -8,6 +8,7 @@ import { axiosDelete, axiosGet } from '../../../utils/Apis/axios';
|
|
|
8
8
|
import { ToastBottomHelper } from '../../../utils/Utils';
|
|
9
9
|
|
|
10
10
|
const useDataMember = (unitId) => {
|
|
11
|
+
const t = useTranslations();
|
|
11
12
|
const { navigate, addListener } = useNavigation();
|
|
12
13
|
const [dataMembers, setDataMembers] = useState([]);
|
|
13
14
|
const [loading, setLoading] = useState(false);
|
|
@@ -30,7 +31,7 @@ const useDataMember = (unitId) => {
|
|
|
30
31
|
);
|
|
31
32
|
setDataMembers(dataMembers.filter((item) => item.share_id !== id));
|
|
32
33
|
},
|
|
33
|
-
[dataMembers, unitId]
|
|
34
|
+
[dataMembers, t, unitId]
|
|
34
35
|
);
|
|
35
36
|
const leaveUnit = useCallback(
|
|
36
37
|
(unitName) => async () => {
|
|
@@ -39,7 +40,7 @@ const useDataMember = (unitId) => {
|
|
|
39
40
|
setDataMembers([]);
|
|
40
41
|
navigate(Routes.Dashboard);
|
|
41
42
|
},
|
|
42
|
-
[navigate, unitId]
|
|
43
|
+
[navigate, t, unitId]
|
|
43
44
|
);
|
|
44
45
|
|
|
45
46
|
const onRefresh = useCallback(async () => {
|
|
@@ -74,6 +75,7 @@ const useDataMember = (unitId) => {
|
|
|
74
75
|
};
|
|
75
76
|
|
|
76
77
|
const useStateAlertAction = () => {
|
|
78
|
+
const t = useTranslations();
|
|
77
79
|
const [stateAlertAction, setStateAlertAction] = useState({
|
|
78
80
|
visible: false,
|
|
79
81
|
title: '',
|
|
@@ -85,19 +87,22 @@ const useStateAlertAction = () => {
|
|
|
85
87
|
const hideAlertAction = useCallback(() => {
|
|
86
88
|
setStateAlertAction({ ...stateAlertAction, visible: false });
|
|
87
89
|
}, [stateAlertAction]);
|
|
88
|
-
const onPressRemoveUser = useCallback(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
90
|
+
const onPressRemoveUser = useCallback(
|
|
91
|
+
(member) => {
|
|
92
|
+
setStateAlertAction((action) => {
|
|
93
|
+
let name = member.name || 'N/A';
|
|
94
|
+
return {
|
|
95
|
+
...action,
|
|
96
|
+
visible: true,
|
|
97
|
+
title: t('sharing_remove_user', { name: name }),
|
|
98
|
+
message: t('sharing_remove_user_message', { name: name }),
|
|
99
|
+
rightButton: t('remove'),
|
|
100
|
+
member: member,
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
[t]
|
|
105
|
+
);
|
|
101
106
|
const stateLeaveUnit = useCallback(() => {
|
|
102
107
|
setStateAlertAction((action) => {
|
|
103
108
|
return {
|
|
@@ -109,7 +114,7 @@ const useStateAlertAction = () => {
|
|
|
109
114
|
member: null,
|
|
110
115
|
};
|
|
111
116
|
});
|
|
112
|
-
}, []);
|
|
117
|
+
}, [t]);
|
|
113
118
|
|
|
114
119
|
return {
|
|
115
120
|
stateAlertAction,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
SafeAreaView,
|
|
8
8
|
} from 'react-native';
|
|
9
9
|
import { useNavigation } from '@react-navigation/native';
|
|
10
|
-
import {
|
|
10
|
+
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
11
11
|
|
|
12
12
|
import { API, Colors } from '../../configs';
|
|
13
13
|
import { ViewButtonBottom, ImagePicker } from '../../commons';
|
|
@@ -20,6 +20,7 @@ import { TESTID } from '../../configs/Constants';
|
|
|
20
20
|
import styles from './AddSubUnitStyles';
|
|
21
21
|
|
|
22
22
|
const AddSubUnit = ({ route }) => {
|
|
23
|
+
const t = useTranslations();
|
|
23
24
|
const navigation = useNavigation();
|
|
24
25
|
const { unit, addType } = route.params;
|
|
25
26
|
const [roomName, setRoomName] = useState('');
|
|
@@ -56,7 +57,7 @@ const AddSubUnit = ({ route }) => {
|
|
|
56
57
|
} else {
|
|
57
58
|
ToastBottomHelper.error(t('text_create_sub_unit_fail'));
|
|
58
59
|
}
|
|
59
|
-
}, [addType, navigation, roomName, route.params, unit, wallpaper]);
|
|
60
|
+
}, [addType, navigation, roomName, route.params, t, unit, wallpaper]);
|
|
60
61
|
|
|
61
62
|
const onChoosePhoto = useCallback(() => {
|
|
62
63
|
setShowImagePicker(true);
|
|
@@ -2,7 +2,7 @@ import React, { useCallback, useMemo } from 'react';
|
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import { useNavigation } from '@react-navigation/native';
|
|
4
4
|
import { get } from 'lodash';
|
|
5
|
-
import {
|
|
5
|
+
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
6
6
|
|
|
7
7
|
import Routes from '../../utils/Route';
|
|
8
8
|
import { usePopover } from '../../hooks/Common';
|
|
@@ -15,6 +15,7 @@ import { useSCContextSelector } from '../../context';
|
|
|
15
15
|
import styles from './DetailStyles';
|
|
16
16
|
|
|
17
17
|
const SubUnitDetail = ({ route }) => {
|
|
18
|
+
const t = useTranslations();
|
|
18
19
|
const { unit, station, isGGHomeConnected } = route.params;
|
|
19
20
|
const language = useSCContextSelector((state) => state.language);
|
|
20
21
|
const navigation = useNavigation();
|
|
@@ -104,13 +105,13 @@ const SubUnitDetail = ({ route }) => {
|
|
|
104
105
|
</View>
|
|
105
106
|
</>
|
|
106
107
|
)}
|
|
107
|
-
{devices
|
|
108
|
+
{devices?.length !== 0 ? (
|
|
108
109
|
<View>
|
|
109
110
|
<Text style={styles.subUnitTitle}>
|
|
110
|
-
{t('text_all_devices')} ({devices
|
|
111
|
+
{t('text_all_devices')} ({devices?.length})
|
|
111
112
|
</Text>
|
|
112
113
|
<View style={styles.boxDevices}>
|
|
113
|
-
{devices
|
|
114
|
+
{devices?.map((item, index) => {
|
|
114
115
|
return (
|
|
115
116
|
<ItemDevice
|
|
116
117
|
key={`sensor-${item.id}`}
|
|
@@ -4,7 +4,7 @@ import Modal from 'react-native-modal';
|
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
5
|
import { useIsFocused, useNavigation } from '@react-navigation/native';
|
|
6
6
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
7
|
-
import {
|
|
7
|
+
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
8
8
|
|
|
9
9
|
import { Colors, API, Device } from '../../configs';
|
|
10
10
|
import { ToastBottomHelper } from '../../utils/Utils';
|
|
@@ -26,6 +26,7 @@ import { IconOutline } from '@ant-design/icons-react-native';
|
|
|
26
26
|
import { useEmeragencyContacts } from './hooks/useEmergencyContacts';
|
|
27
27
|
|
|
28
28
|
const ManageSubUnit = (props) => {
|
|
29
|
+
const t = useTranslations();
|
|
29
30
|
const { station } = props.route.params;
|
|
30
31
|
//TODO remove redux
|
|
31
32
|
// const unit = useSelector((state) => state.unit.unitDetail);
|
|
@@ -71,7 +72,7 @@ const ManageSubUnit = (props) => {
|
|
|
71
72
|
const updateSubUnit = useCallback(
|
|
72
73
|
async (params, headers) => {
|
|
73
74
|
const { success, data } = await axiosPatch(
|
|
74
|
-
API.SUB_UNIT.MANAGE_SUB_UNIT(unit
|
|
75
|
+
API.SUB_UNIT.MANAGE_SUB_UNIT(unit?.id, station.id),
|
|
75
76
|
params,
|
|
76
77
|
headers
|
|
77
78
|
);
|
|
@@ -82,13 +83,13 @@ const ManageSubUnit = (props) => {
|
|
|
82
83
|
ToastBottomHelper.success(t('text_rename_sub_unit_success'));
|
|
83
84
|
}
|
|
84
85
|
},
|
|
85
|
-
[unit, station]
|
|
86
|
+
[unit, station.id, t]
|
|
86
87
|
);
|
|
87
88
|
const updateBackground = useCallback(
|
|
88
89
|
async (headers) => {
|
|
89
90
|
const formData = createFormData(imageUrl, ['background']);
|
|
90
91
|
const { success } = await axiosPatch(
|
|
91
|
-
API.SUB_UNIT.MANAGE_SUB_UNIT(unit
|
|
92
|
+
API.SUB_UNIT.MANAGE_SUB_UNIT(unit?.id, station.id),
|
|
92
93
|
formData,
|
|
93
94
|
headers
|
|
94
95
|
);
|
|
@@ -97,7 +98,7 @@ const ManageSubUnit = (props) => {
|
|
|
97
98
|
ToastBottomHelper.success(t('text_change_background_sub_unit_success'));
|
|
98
99
|
}
|
|
99
100
|
},
|
|
100
|
-
[unit, station,
|
|
101
|
+
[imageUrl, unit, station.id, t]
|
|
101
102
|
);
|
|
102
103
|
|
|
103
104
|
const onPressRemove = useCallback(() => {
|
|
@@ -111,7 +112,7 @@ const ManageSubUnit = (props) => {
|
|
|
111
112
|
const onRemoveSubUnit = useCallback(async () => {
|
|
112
113
|
setHideModalRemoveSubUnit();
|
|
113
114
|
const { success } = await axiosDelete(
|
|
114
|
-
API.SUB_UNIT.REMOVE_SUB_UNIT(unit
|
|
115
|
+
API.SUB_UNIT.REMOVE_SUB_UNIT(unit?.id, station.id)
|
|
115
116
|
);
|
|
116
117
|
if (success) {
|
|
117
118
|
//dispatch(removeSubUnit(station.id));
|
|
@@ -120,7 +121,7 @@ const ManageSubUnit = (props) => {
|
|
|
120
121
|
} else {
|
|
121
122
|
ToastBottomHelper.error(t('text_remove_sub_unit_fail'));
|
|
122
123
|
}
|
|
123
|
-
}, [unit, station,
|
|
124
|
+
}, [setHideModalRemoveSubUnit, unit, station.id, t, onBack]);
|
|
124
125
|
|
|
125
126
|
const goRename = useCallback(() => {
|
|
126
127
|
updateSubUnit({ name: inputName }, {});
|
|
@@ -154,9 +155,9 @@ const ManageSubUnit = (props) => {
|
|
|
154
155
|
const onPressEmergencyContact = useCallback(() => {
|
|
155
156
|
navigation.navigate(Routes.EmergencyContactsStack, {
|
|
156
157
|
screen: Routes.EmergencyContactsList,
|
|
157
|
-
params: { unitId: unit
|
|
158
|
+
params: { unitId: unit?.id, group },
|
|
158
159
|
});
|
|
159
|
-
}, [group, navigation, unit
|
|
160
|
+
}, [group, navigation, unit]);
|
|
160
161
|
|
|
161
162
|
return (
|
|
162
163
|
<SafeAreaView style={styles.container}>
|
|
@@ -5,11 +5,18 @@ import { ImagePicker, ViewButtonBottom } from '../../../commons';
|
|
|
5
5
|
import { act, create } from 'react-test-renderer';
|
|
6
6
|
import Toast from 'react-native-toast-message';
|
|
7
7
|
import Routes from '../../../utils/Route';
|
|
8
|
-
import { t } from 'i18n-js';
|
|
9
|
-
import { createSubUnit } from '../../../redux/Actions/unit';
|
|
10
8
|
import { TESTID } from '../../../configs/Constants';
|
|
11
9
|
import _TextInput from '../../../commons/Form/TextInput';
|
|
12
10
|
import AddSubUnit from '../AddSubUnit';
|
|
11
|
+
import { getTranslate } from '../../../utils/I18n';
|
|
12
|
+
import { SCProvider } from '../../../context';
|
|
13
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
14
|
+
|
|
15
|
+
const wrapComponent = (route) => (
|
|
16
|
+
<SCProvider initState={mockSCStore({})}>
|
|
17
|
+
<AddSubUnit route={route} />
|
|
18
|
+
</SCProvider>
|
|
19
|
+
);
|
|
13
20
|
|
|
14
21
|
const mockedNavigate = jest.fn();
|
|
15
22
|
const mockedDispatch = jest.fn();
|
|
@@ -59,7 +66,7 @@ describe('Test AddSubUnit', () => {
|
|
|
59
66
|
|
|
60
67
|
test('onChoosePhoto show image picker', async () => {
|
|
61
68
|
await act(async () => {
|
|
62
|
-
tree = await create(
|
|
69
|
+
tree = await create(wrapComponent(route));
|
|
63
70
|
});
|
|
64
71
|
const instance = tree.root;
|
|
65
72
|
const buttonChoosePhoto = instance.find(
|
|
@@ -77,7 +84,7 @@ describe('Test AddSubUnit', () => {
|
|
|
77
84
|
|
|
78
85
|
test('ImagePicker setImageUrl show wallpaper', async () => {
|
|
79
86
|
await act(async () => {
|
|
80
|
-
tree = await create(
|
|
87
|
+
tree = await create(wrapComponent(route));
|
|
81
88
|
});
|
|
82
89
|
const instance = tree.root;
|
|
83
90
|
const imagePicker = instance.findByType(ImagePicker);
|
|
@@ -110,7 +117,7 @@ describe('Test AddSubUnit', () => {
|
|
|
110
117
|
|
|
111
118
|
test('onChangeRoomName and setImageUrl for validateData', async () => {
|
|
112
119
|
await act(async () => {
|
|
113
|
-
tree = await create(
|
|
120
|
+
tree = await create(wrapComponent(route));
|
|
114
121
|
});
|
|
115
122
|
const instance = tree.root;
|
|
116
123
|
await makeValidateData(instance);
|
|
@@ -118,7 +125,7 @@ describe('Test AddSubUnit', () => {
|
|
|
118
125
|
|
|
119
126
|
test('ViewButtonBottom onLeftClick', async () => {
|
|
120
127
|
await act(async () => {
|
|
121
|
-
tree = await create(
|
|
128
|
+
tree = await create(wrapComponent(route));
|
|
122
129
|
});
|
|
123
130
|
const instance = tree.root;
|
|
124
131
|
const viewButtonBottom = instance.findByType(ViewButtonBottom);
|
|
@@ -141,7 +148,7 @@ describe('Test AddSubUnit', () => {
|
|
|
141
148
|
});
|
|
142
149
|
|
|
143
150
|
await act(async () => {
|
|
144
|
-
tree = await create(
|
|
151
|
+
tree = await create(wrapComponent(route));
|
|
145
152
|
});
|
|
146
153
|
const instance = tree.root;
|
|
147
154
|
const viewButtonBottom = await makeValidateData(instance);
|
|
@@ -149,7 +156,6 @@ describe('Test AddSubUnit', () => {
|
|
|
149
156
|
await viewButtonBottom.props.onRightClick();
|
|
150
157
|
});
|
|
151
158
|
expect(axios.post).toHaveBeenCalled();
|
|
152
|
-
expect(mockedDispatch).toHaveBeenCalledWith(createSubUnit(response.data));
|
|
153
159
|
expect(mockedNavigate).toHaveBeenCalledWith(Routes.UnitStack, {
|
|
154
160
|
screen: Routes.SubUnitDetail,
|
|
155
161
|
params: {
|
|
@@ -160,7 +166,7 @@ describe('Test AddSubUnit', () => {
|
|
|
160
166
|
expect(Toast.show).toHaveBeenCalledWith({
|
|
161
167
|
type: 'success',
|
|
162
168
|
position: 'bottom',
|
|
163
|
-
text1:
|
|
169
|
+
text1: getTranslate('en', 'text_create_sub_unit_success'),
|
|
164
170
|
visibilityTime: 1000,
|
|
165
171
|
});
|
|
166
172
|
});
|
|
@@ -175,7 +181,7 @@ describe('Test AddSubUnit', () => {
|
|
|
175
181
|
});
|
|
176
182
|
|
|
177
183
|
await act(async () => {
|
|
178
|
-
tree = await create(
|
|
184
|
+
tree = await create(wrapComponent(route));
|
|
179
185
|
});
|
|
180
186
|
const instance = tree.root;
|
|
181
187
|
const viewButtonBottom = await makeValidateData(instance);
|
|
@@ -186,7 +192,7 @@ describe('Test AddSubUnit', () => {
|
|
|
186
192
|
expect(Toast.show).toHaveBeenCalledWith({
|
|
187
193
|
type: 'error',
|
|
188
194
|
position: 'bottom',
|
|
189
|
-
text1:
|
|
195
|
+
text1: getTranslate('en', 'text_create_sub_unit_fail'),
|
|
190
196
|
visibilityTime: 1000,
|
|
191
197
|
});
|
|
192
198
|
});
|
|
@@ -5,11 +5,11 @@ import { useSelector } from 'react-redux';
|
|
|
5
5
|
import { act, create } from 'react-test-renderer';
|
|
6
6
|
import Toast from 'react-native-toast-message';
|
|
7
7
|
import SubUnitDetail from '../Detail';
|
|
8
|
-
import MediaPlayer from '../../../commons/MediaPlayer';
|
|
9
8
|
import ItemDevice from '../../../commons/Device/ItemDevice';
|
|
10
9
|
import Routes from '../../../utils/Route';
|
|
11
|
-
import { MenuActionMore } from '../../../commons';
|
|
12
10
|
import WrapParallaxScrollView from '../../../commons/WrapParallaxScrollView';
|
|
11
|
+
import { SCProvider } from '../../../context';
|
|
12
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
13
13
|
|
|
14
14
|
const mockedNavigate = jest.fn();
|
|
15
15
|
const mockedDispatch = jest.fn();
|
|
@@ -41,6 +41,12 @@ jest.mock('@react-navigation/native', () => {
|
|
|
41
41
|
};
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
+
const wrapComponent = (route) => (
|
|
45
|
+
<SCProvider initState={mockSCStore({})}>
|
|
46
|
+
<SubUnitDetail route={route} />
|
|
47
|
+
</SCProvider>
|
|
48
|
+
);
|
|
49
|
+
|
|
44
50
|
describe('Test SubUnitDetail', () => {
|
|
45
51
|
let route;
|
|
46
52
|
let stationState = {
|
|
@@ -106,39 +112,13 @@ describe('Test SubUnitDetail', () => {
|
|
|
106
112
|
});
|
|
107
113
|
let tree;
|
|
108
114
|
|
|
109
|
-
test('MediaCamera', async () => {
|
|
110
|
-
act(() => {
|
|
111
|
-
tree = create(<SubUnitDetail route={route} />);
|
|
112
|
-
});
|
|
113
|
-
const instance = tree.root;
|
|
114
|
-
const mediaCamera = instance.findByType(MediaPlayer);
|
|
115
|
-
expect(mediaCamera.props.uri).toEqual('camera-uri');
|
|
116
|
-
});
|
|
117
|
-
|
|
118
115
|
test('ItemDevice', async () => {
|
|
119
116
|
act(() => {
|
|
120
|
-
tree = create(
|
|
117
|
+
tree = create(wrapComponent(route));
|
|
121
118
|
});
|
|
122
119
|
const instance = tree.root;
|
|
123
120
|
const itemDevices = instance.findAllByType(ItemDevice);
|
|
124
|
-
expect(itemDevices).toHaveLength(
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
test('onItemClick', async () => {
|
|
128
|
-
await act(async () => {
|
|
129
|
-
tree = await create(<SubUnitDetail route={route} />);
|
|
130
|
-
});
|
|
131
|
-
const instance = tree.root;
|
|
132
|
-
const menuActionMore = instance.findByType(MenuActionMore);
|
|
133
|
-
await act(async () => {
|
|
134
|
-
await menuActionMore.props.onItemClick({
|
|
135
|
-
route: Routes.ManageSubUnit,
|
|
136
|
-
data: { station: stationState },
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
expect(mockedNavigate).toHaveBeenCalledWith(Routes.ManageSubUnit, {
|
|
140
|
-
station: stationState,
|
|
141
|
-
});
|
|
121
|
+
expect(itemDevices).toHaveLength(0);
|
|
142
122
|
});
|
|
143
123
|
|
|
144
124
|
test('onBack', async () => {
|
|
@@ -151,7 +131,7 @@ describe('Test SubUnitDetail', () => {
|
|
|
151
131
|
}));
|
|
152
132
|
|
|
153
133
|
await act(async () => {
|
|
154
|
-
tree = await create(
|
|
134
|
+
tree = await create(wrapComponent(route));
|
|
155
135
|
});
|
|
156
136
|
const instance = tree.root;
|
|
157
137
|
const wrapScrollView = instance.findByType(WrapParallaxScrollView);
|