@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.
- 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/Illustrations.svg +83 -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/ValueChange.svg +49 -0
- package/index.js +2 -0
- package/package.json +14 -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 +9 -4
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +4 -3
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
- 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__/NumberUpDownTemplate.test.js +294 -0
- package/src/commons/ActionGroup/__test__/NumberUpDownTemplateWithNullConfigValue.test.js +60 -0
- 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/AlertAction/__test__/AlertAction.test.js +6 -6
- package/src/commons/AlertAction/index.js +2 -0
- package/src/commons/Automate/ItemAddNewScriptActionStyles.js +38 -0
- package/src/commons/Automate/ItemAutomate.js +39 -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/Automate/__test__/ItemAutomate.test.js +16 -0
- package/src/commons/Automate/__test__/ItemScriptAction.test.js +16 -0
- package/src/commons/BackDefault/__test__/BackDefault.test.js +21 -0
- package/src/commons/BottomScrollPicker/index.js +62 -0
- package/src/commons/BottomScrollPicker/styles.js +13 -0
- package/src/commons/BottomSheet/index.js +41 -0
- package/src/commons/BottomSheet/styles.js +37 -0
- package/src/commons/Button/index.js +6 -1
- package/src/commons/ButtonPopup/__test__/__snapshots__/ButtonPopup.test.js.snap +2 -0
- package/src/commons/ButtonPopup/index.js +2 -0
- package/src/commons/Calendar/index.js +72 -0
- package/src/commons/Calendar/styles.js +11 -0
- 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 +8 -3
- 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__/HeaderExplore.test.js +11 -7
- package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
- package/src/commons/Explore/__test__/LocationItem.test.js +31 -0
- package/src/commons/Header/HeaderCustom.js +22 -2
- 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 +36 -5
- package/src/commons/HorizontalPicker/index.js +134 -0
- package/src/commons/HorizontalPicker/styles.js +56 -0
- 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/__test__/ModalBottom.test.js +39 -0
- package/src/commons/Modal/index.js +2 -1
- package/src/commons/NavBar/index.js +2 -2
- package/src/commons/RowItem/__test__/RowItem.test.js +16 -0
- package/src/commons/RowItem/index.js +61 -0
- package/src/commons/RowItem/styles.js +53 -0
- 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/WrapHeaderScrollable.js +78 -74
- 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 +101 -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 +195 -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/Unit/__test__/SharedUnit.test.js +330 -0
- 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 +168 -0
- package/src/commons/WheelDateTimePicker/styles.js +21 -0
- package/src/commons/index.js +2 -0
- package/src/configs/API.js +29 -0
- package/src/configs/Colors.js +1 -0
- package/src/configs/Constants.js +61 -0
- package/src/configs/Images.js +1 -0
- package/src/configs/SCConfig.js +7 -0
- package/src/configs/Theme.js +20 -0
- package/src/context/SCContext.tsx +9 -39
- package/src/context/actionType.ts +11 -0
- package/src/context/mockStore.ts +51 -0
- package/src/context/reducer.ts +23 -0
- package/src/hooks/Common/__test__/useStatusbar.test.js +28 -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/AutomateStack.js +45 -0
- package/src/navigations/SharedStack.js +2 -1
- package/src/navigations/UnitStack.js +86 -6
- package/src/navigations/utils.js +8 -0
- 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/Components/LoadingSelectAction.js +40 -0
- package/src/screens/AddNewAction/Components/index.js +3 -0
- 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 +237 -0
- package/src/screens/AddNewAction/SelectSensorDevices.js +150 -0
- package/src/screens/AddNewAction/SetupSensor.js +221 -0
- package/src/screens/AddNewAction/Styles/SelectActionStyles.js +62 -0
- package/src/screens/AddNewAction/Styles/SelectSensorDevicesStyles.js +36 -0
- package/src/screens/AddNewAction/Styles/SetupSensorStyles.js +76 -0
- package/src/screens/AddNewAction/__test__/SelectAction.test.js +153 -0
- package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +191 -0
- package/src/screens/AddNewAction/__test__/SetupSensor.test.js +125 -0
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +112 -0
- package/src/screens/AddNewAutoSmart/index.js +113 -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 +44 -0
- package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +130 -0
- package/src/screens/AddNewOneTap/index.js +83 -0
- package/src/screens/AllCamera/__test__/index.test.js +103 -0
- package/src/screens/AllCamera/index.js +2 -1
- package/src/screens/Automate/Components/Loading.js +64 -0
- package/src/screens/Automate/Styles/indexStyles.js +64 -0
- package/src/screens/Automate/__test__/Loading.test.js +16 -0
- package/src/screens/Automate/__test__/index.test.js +93 -0
- package/src/screens/Automate/index.js +148 -0
- package/src/screens/Device/HeaderDevice/styles.js +2 -2
- package/src/screens/Device/__test__/detail.test.js +90 -18
- package/src/screens/Device/detail.js +73 -35
- 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/__test__/index.test.js +176 -0
- package/src/screens/GuestInfo/components/AccessScheduleItem.js +32 -0
- package/src/screens/GuestInfo/components/AccessScheduleSheet.js +204 -0
- package/src/screens/GuestInfo/components/HeaderGuestInfo.js +36 -0
- package/src/screens/GuestInfo/components/RecurringDetail.js +106 -0
- package/src/screens/GuestInfo/components/RowGuestInfo.js +31 -0
- package/src/screens/GuestInfo/components/TemporaryDetail.js +53 -0
- package/src/screens/GuestInfo/constant.js +59 -0
- package/src/screens/GuestInfo/index.js +150 -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/Timer.js +1 -1
- 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 +157 -0
- package/src/screens/ScriptDetail/__test__/index.test.js +119 -0
- package/src/screens/ScriptDetail/hooks/index.js +55 -0
- package/src/screens/ScriptDetail/index.js +344 -0
- package/src/screens/SelectUnit/Styles/indexStyles.js +55 -0
- package/src/screens/SelectUnit/__test__/index.test.js +85 -0
- package/src/screens/SelectUnit/index.js +100 -0
- package/src/screens/SetSchedule/__test__/index.test.js +97 -0
- package/src/screens/SetSchedule/components/RepeatOptionsPopup.js +56 -0
- package/src/screens/SetSchedule/components/RowItem.js +27 -0
- package/src/screens/SetSchedule/components/SelectWeekday.js +65 -0
- package/src/screens/SetSchedule/index.js +139 -0
- package/src/screens/SetSchedule/styles/RepeatOptionsPopupStyles.js +22 -0
- package/src/screens/SetSchedule/styles/RowItemStyles.js +29 -0
- package/src/screens/SetSchedule/styles/SelectWeekdayStyles.js +26 -0
- package/src/screens/SetSchedule/styles/indexStyles.js +22 -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 +25 -28
- 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/EditSubUnit.js +274 -0
- package/src/screens/SubUnit/EditSubUnitStyles.js +119 -0
- package/src/screens/SubUnit/ManageSubUnit.js +114 -371
- package/src/screens/SubUnit/ManageSubUnitStyles.js +40 -0
- 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__/EditSubUnit.test.js +427 -0
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +51 -384
- package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +85 -0
- package/src/screens/SubUnit/hooks/useManageSubUnit.js +35 -0
- 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 +66 -20
- package/src/screens/Unit/ManageUnit/index.js +4 -3
- package/src/screens/Unit/ManageUnit.js +15 -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/__test__/RowLocation.test.js +36 -0
- 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__/MyUnit.test.js +22 -72
- package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +32 -0
- 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/components/__test__/UnitSummary.test.js +67 -0
- package/src/screens/UnitSummary/components/__test__/index.test.js +48 -0
- package/src/screens/UnitSummary/components/index.js +1 -37
- package/src/screens/UnitSummary/components/indexstyles.js +39 -0
- 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/Apis/axios.js +0 -4
- 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 +77 -5
- package/src/utils/I18n/translations/vi.json +73 -3
- package/src/utils/I18n/translations.ts +45 -0
- package/src/utils/Route/index.js +13 -0
- package/src/utils/__test__/InitData.test.js +20 -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/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/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
|
@@ -5,11 +5,21 @@ import DateTimePickerModal from 'react-native-modal-datetime-picker';
|
|
|
5
5
|
import moment from 'moment';
|
|
6
6
|
|
|
7
7
|
import ActionGroup from '..';
|
|
8
|
-
import RadioCircle from '../../RadioCircle';
|
|
9
|
-
import IconComponent from '../../IconComponent';
|
|
10
8
|
import Text from '../../Text';
|
|
11
9
|
import { Colors } from '../../../configs';
|
|
12
10
|
import { TESTID } from '../../../configs/Constants';
|
|
11
|
+
import { SCProvider } from '../../../context';
|
|
12
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
13
|
+
|
|
14
|
+
const wrapComponent = (actionGroup, mockDoAction, sensor) => (
|
|
15
|
+
<SCProvider initState={mockSCStore({})}>
|
|
16
|
+
<ActionGroup
|
|
17
|
+
actionGroup={actionGroup}
|
|
18
|
+
doAction={mockDoAction}
|
|
19
|
+
sensor={sensor}
|
|
20
|
+
/>
|
|
21
|
+
</SCProvider>
|
|
22
|
+
);
|
|
13
23
|
|
|
14
24
|
describe('Test ActionGroup', () => {
|
|
15
25
|
const configuration_with_none_action_on_off = {
|
|
@@ -140,13 +150,11 @@ describe('Test ActionGroup', () => {
|
|
|
140
150
|
};
|
|
141
151
|
});
|
|
142
152
|
|
|
143
|
-
test('render ActionGroup three_button_action_template', () => {
|
|
153
|
+
test('render ActionGroup three_button_action_template', async () => {
|
|
144
154
|
const actionGroup = actionGroupData;
|
|
145
155
|
const mockDoAction = jest.fn();
|
|
146
|
-
act(() => {
|
|
147
|
-
wrapper = renderer.create(
|
|
148
|
-
<ActionGroup actionGroup={actionGroup} doAction={mockDoAction} />
|
|
149
|
-
);
|
|
156
|
+
await act(() => {
|
|
157
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction));
|
|
150
158
|
});
|
|
151
159
|
const instance = wrapper.root;
|
|
152
160
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -180,13 +188,11 @@ describe('Test ActionGroup', () => {
|
|
|
180
188
|
);
|
|
181
189
|
});
|
|
182
190
|
|
|
183
|
-
test('Three_button_action_template Action OnOff isDisplayLock True', () => {
|
|
191
|
+
test('Three_button_action_template Action OnOff isDisplayLock True', async () => {
|
|
184
192
|
const actionGroup = actionGroupData;
|
|
185
193
|
const mockDoAction = jest.fn();
|
|
186
|
-
act(() => {
|
|
187
|
-
wrapper = renderer.create(
|
|
188
|
-
<ActionGroup actionGroup={actionGroup} doAction={mockDoAction} />
|
|
189
|
-
);
|
|
194
|
+
await act(() => {
|
|
195
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction));
|
|
190
196
|
});
|
|
191
197
|
const instance = wrapper.root;
|
|
192
198
|
const switchOnOff = instance.findAllByType(Switch);
|
|
@@ -207,16 +213,14 @@ describe('Test ActionGroup', () => {
|
|
|
207
213
|
);
|
|
208
214
|
});
|
|
209
215
|
|
|
210
|
-
test('Three_button_action_template None Action OnOff isDisplayLock True', () => {
|
|
216
|
+
test('Three_button_action_template None Action OnOff isDisplayLock True', async () => {
|
|
211
217
|
const actionGroup = {
|
|
212
218
|
...actionGroupData,
|
|
213
219
|
configuration: configuration_with_none_action_on_off,
|
|
214
220
|
};
|
|
215
221
|
const mockDoAction = jest.fn();
|
|
216
|
-
act(() => {
|
|
217
|
-
wrapper = renderer.create(
|
|
218
|
-
<ActionGroup actionGroup={actionGroup} doAction={mockDoAction} />
|
|
219
|
-
);
|
|
222
|
+
await act(() => {
|
|
223
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction));
|
|
220
224
|
});
|
|
221
225
|
const instance = wrapper.root;
|
|
222
226
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -250,22 +254,20 @@ describe('Test ActionGroup', () => {
|
|
|
250
254
|
);
|
|
251
255
|
});
|
|
252
256
|
|
|
253
|
-
test('Three_button_action_template Action OnOff isDisplayLock False', () => {
|
|
257
|
+
test('Three_button_action_template Action OnOff isDisplayLock False', async () => {
|
|
254
258
|
const actionGroup = {
|
|
255
259
|
...actionGroupData.configuration,
|
|
256
260
|
is_display_lock: false,
|
|
257
261
|
};
|
|
258
262
|
const mockDoAction = jest.fn();
|
|
259
|
-
act(() => {
|
|
260
|
-
wrapper = renderer.create(
|
|
261
|
-
<ActionGroup actionGroup={actionGroup} doAction={mockDoAction} />
|
|
262
|
-
);
|
|
263
|
+
await act(() => {
|
|
264
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction));
|
|
263
265
|
});
|
|
264
266
|
const instance = wrapper.root;
|
|
265
267
|
const switchOnOff = instance.findAllByType(Switch);
|
|
266
268
|
expect(switchOnOff.length).toEqual(0);
|
|
267
269
|
});
|
|
268
|
-
test('render ActionGroup one_button_action_template', () => {
|
|
270
|
+
test('render ActionGroup one_button_action_template', async () => {
|
|
269
271
|
const mockDoAction = jest.fn();
|
|
270
272
|
const actionGroup = {
|
|
271
273
|
template: 'one_button_action_template',
|
|
@@ -276,10 +278,8 @@ describe('Test ActionGroup', () => {
|
|
|
276
278
|
text: 'UP',
|
|
277
279
|
},
|
|
278
280
|
};
|
|
279
|
-
act(() => {
|
|
280
|
-
wrapper = renderer.create(
|
|
281
|
-
<ActionGroup actionGroup={actionGroup} doAction={mockDoAction} />
|
|
282
|
-
);
|
|
281
|
+
await act(() => {
|
|
282
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction));
|
|
283
283
|
});
|
|
284
284
|
const instance = wrapper.root;
|
|
285
285
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -291,7 +291,7 @@ describe('Test ActionGroup', () => {
|
|
|
291
291
|
expect(mockDoAction).toHaveBeenCalledWith(action_data);
|
|
292
292
|
});
|
|
293
293
|
|
|
294
|
-
test('render ActionGroup on_off_button_action_template', () => {
|
|
294
|
+
test('render ActionGroup on_off_button_action_template', async () => {
|
|
295
295
|
const mockDoAction = jest.fn();
|
|
296
296
|
const actionGroup = {
|
|
297
297
|
template: 'on_off_button_action_template',
|
|
@@ -304,14 +304,8 @@ describe('Test ActionGroup', () => {
|
|
|
304
304
|
text_off: 'OFF',
|
|
305
305
|
},
|
|
306
306
|
};
|
|
307
|
-
act(() => {
|
|
308
|
-
wrapper = renderer.create(
|
|
309
|
-
<ActionGroup
|
|
310
|
-
actionGroup={actionGroup}
|
|
311
|
-
doAction={mockDoAction}
|
|
312
|
-
sensor={{}}
|
|
313
|
-
/>
|
|
314
|
-
);
|
|
307
|
+
await act(() => {
|
|
308
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction, {}));
|
|
315
309
|
});
|
|
316
310
|
const instance = wrapper.root;
|
|
317
311
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
@@ -322,7 +316,7 @@ describe('Test ActionGroup', () => {
|
|
|
322
316
|
expect(mockDoAction).toHaveBeenCalledTimes(1);
|
|
323
317
|
});
|
|
324
318
|
|
|
325
|
-
test('render ActionGroup NumberUpDownActionTemplate', () => {
|
|
319
|
+
test('render ActionGroup NumberUpDownActionTemplate', async () => {
|
|
326
320
|
const mockDoAction = jest.fn();
|
|
327
321
|
const actionGroup = {
|
|
328
322
|
template: 'NumberUpDownActionTemplate',
|
|
@@ -334,14 +328,8 @@ describe('Test ActionGroup', () => {
|
|
|
334
328
|
text_format: '{number} *C',
|
|
335
329
|
},
|
|
336
330
|
};
|
|
337
|
-
act(() => {
|
|
338
|
-
wrapper = renderer.create(
|
|
339
|
-
<ActionGroup
|
|
340
|
-
actionGroup={actionGroup}
|
|
341
|
-
doAction={mockDoAction}
|
|
342
|
-
sensor={{}}
|
|
343
|
-
/>
|
|
344
|
-
);
|
|
331
|
+
await act(() => {
|
|
332
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction, {}));
|
|
345
333
|
});
|
|
346
334
|
const instance = wrapper.root;
|
|
347
335
|
const text = instance.findByType(Text);
|
|
@@ -351,7 +339,7 @@ describe('Test ActionGroup', () => {
|
|
|
351
339
|
expect(touchs).toHaveLength(2);
|
|
352
340
|
});
|
|
353
341
|
|
|
354
|
-
test('render ActionGroup StatesGridActionTemplate', () => {
|
|
342
|
+
test('render ActionGroup StatesGridActionTemplate', async () => {
|
|
355
343
|
const mockDoAction = jest.fn();
|
|
356
344
|
const actionGroup = {
|
|
357
345
|
template: 'StatesGridActionTemplate',
|
|
@@ -377,14 +365,8 @@ describe('Test ActionGroup', () => {
|
|
|
377
365
|
],
|
|
378
366
|
},
|
|
379
367
|
};
|
|
380
|
-
act(() => {
|
|
381
|
-
wrapper = renderer.create(
|
|
382
|
-
<ActionGroup
|
|
383
|
-
actionGroup={actionGroup}
|
|
384
|
-
doAction={mockDoAction}
|
|
385
|
-
sensor={{}}
|
|
386
|
-
/>
|
|
387
|
-
);
|
|
368
|
+
await act(() => {
|
|
369
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction, {}));
|
|
388
370
|
});
|
|
389
371
|
const instance = wrapper.root;
|
|
390
372
|
const texts = instance.findAllByType(Text);
|
|
@@ -418,50 +400,6 @@ describe('Test ActionGroup', () => {
|
|
|
418
400
|
expect(touchs[1].props.style).toEqual([buttonStyle, OnOffStyle.OFF]);
|
|
419
401
|
});
|
|
420
402
|
|
|
421
|
-
test('render ActionGroup OptionsDropdownActionTemplate', () => {
|
|
422
|
-
const mockDoAction = jest.fn();
|
|
423
|
-
const actionGroup = {
|
|
424
|
-
template: 'OptionsDropdownActionTemplate',
|
|
425
|
-
configuration: {
|
|
426
|
-
action_data,
|
|
427
|
-
config: 5,
|
|
428
|
-
action: 'e5d23347-ee31-4fe3-9fb5-bbce05bf4b61',
|
|
429
|
-
options: [
|
|
430
|
-
{
|
|
431
|
-
text: 'Level1',
|
|
432
|
-
value: 1,
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
text: 'Level2',
|
|
436
|
-
value: 2,
|
|
437
|
-
},
|
|
438
|
-
],
|
|
439
|
-
icon: 'slack',
|
|
440
|
-
},
|
|
441
|
-
};
|
|
442
|
-
act(() => {
|
|
443
|
-
wrapper = renderer.create(
|
|
444
|
-
<ActionGroup
|
|
445
|
-
actionGroup={actionGroup}
|
|
446
|
-
doAction={mockDoAction}
|
|
447
|
-
sensor={{}}
|
|
448
|
-
/>
|
|
449
|
-
);
|
|
450
|
-
});
|
|
451
|
-
const instance = wrapper.root;
|
|
452
|
-
|
|
453
|
-
const icon = instance.findByType(IconComponent);
|
|
454
|
-
expect(icon.props.icon).toEqual('slack');
|
|
455
|
-
|
|
456
|
-
const texts = instance.findAllByType(Text);
|
|
457
|
-
const radioCircles = instance.findAllByType(RadioCircle);
|
|
458
|
-
expect(texts[1].props.children).toEqual('Level1'); // selectedOption, get first one
|
|
459
|
-
expect(radioCircles[0].props.active).toBeTruthy(); // radioCircle tick
|
|
460
|
-
|
|
461
|
-
const touchs = instance.findAllByType(TouchableOpacity);
|
|
462
|
-
expect(touchs).toHaveLength(5); // show-hide alert + 2 options + onDone
|
|
463
|
-
});
|
|
464
|
-
|
|
465
403
|
test('render TimerActionTemplate', async () => {
|
|
466
404
|
Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
|
|
467
405
|
const actionGroup = {
|
|
@@ -474,19 +412,13 @@ describe('Test ActionGroup', () => {
|
|
|
474
412
|
},
|
|
475
413
|
};
|
|
476
414
|
const mockDoAction = jest.fn();
|
|
477
|
-
act(() => {
|
|
478
|
-
wrapper = renderer.create(
|
|
479
|
-
<ActionGroup
|
|
480
|
-
actionGroup={actionGroup}
|
|
481
|
-
doAction={mockDoAction}
|
|
482
|
-
sensor={{}}
|
|
483
|
-
/>
|
|
484
|
-
);
|
|
415
|
+
await act(() => {
|
|
416
|
+
wrapper = renderer.create(wrapComponent(actionGroup, mockDoAction, {}));
|
|
485
417
|
});
|
|
486
418
|
const instance = wrapper.root;
|
|
487
419
|
|
|
488
420
|
const texts = instance.findAllByType(Text);
|
|
489
|
-
expect(texts).toHaveLength(
|
|
421
|
+
expect(texts).toHaveLength(5);
|
|
490
422
|
expect(texts[0].props.children).toEqual('Timer');
|
|
491
423
|
|
|
492
424
|
const switchButton = instance.findByType(Switch);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useTranslations } from '../../../hooks/Common/useTranslations';
|
|
2
2
|
import { useCallback, useState } from 'react';
|
|
3
3
|
|
|
4
4
|
export const useDropdownAction = () => {
|
|
5
|
+
const t = useTranslations();
|
|
5
6
|
const [stateAlert, setStateAlert] = useState({
|
|
6
7
|
visible: false,
|
|
7
8
|
title: 'Fan Speed',
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
import { Colors } from '../../configs';
|
|
3
|
+
|
|
4
|
+
export default StyleSheet.create({
|
|
5
|
+
popoverStyle: {
|
|
6
|
+
width: '100%',
|
|
7
|
+
backgroundColor: Colors.White,
|
|
8
|
+
borderRadius: 10,
|
|
9
|
+
},
|
|
10
|
+
modalHeader: {
|
|
11
|
+
paddingLeft: 16,
|
|
12
|
+
paddingRight: 16,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TouchableOpacity } from 'react-native';
|
|
3
|
+
import Text from '../Text';
|
|
4
|
+
import styles from './OnOffButtonActionStyles';
|
|
5
|
+
|
|
6
|
+
const OnOffButtonAction = ({ configuration, onPress }) => {
|
|
7
|
+
const { text_on, text_off, action_on, action_off } = configuration;
|
|
8
|
+
const onPressActionOn = () => {
|
|
9
|
+
onPress &&
|
|
10
|
+
onPress({
|
|
11
|
+
name: text_on,
|
|
12
|
+
action: action_on,
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const onPressActionOff = () => {
|
|
17
|
+
onPress &&
|
|
18
|
+
onPress({
|
|
19
|
+
name: text_off,
|
|
20
|
+
action: action_off,
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<>
|
|
26
|
+
<TouchableOpacity onPress={onPressActionOn}>
|
|
27
|
+
<Text type="H4" style={styles.textwithline}>
|
|
28
|
+
{text_on}
|
|
29
|
+
</Text>
|
|
30
|
+
</TouchableOpacity>
|
|
31
|
+
<TouchableOpacity onPress={onPressActionOff}>
|
|
32
|
+
<Text type="H4" style={styles.textwithline}>
|
|
33
|
+
{text_off}
|
|
34
|
+
</Text>
|
|
35
|
+
</TouchableOpacity>
|
|
36
|
+
</>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export default OnOffButtonAction;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TouchableOpacity } from 'react-native';
|
|
3
|
+
import Text from '../Text';
|
|
4
|
+
import styles from './OneButtonActionStyles';
|
|
5
|
+
|
|
6
|
+
const OneButtonAction = ({ configuration, onPress }) => {
|
|
7
|
+
const { text, action } = configuration;
|
|
8
|
+
const onPressAction = () => {
|
|
9
|
+
onPress &&
|
|
10
|
+
onPress({
|
|
11
|
+
name: text,
|
|
12
|
+
action: action,
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<>
|
|
18
|
+
<TouchableOpacity onPress={onPressAction}>
|
|
19
|
+
<Text type="H4" style={styles.textwithline}>
|
|
20
|
+
{text}
|
|
21
|
+
</Text>
|
|
22
|
+
</TouchableOpacity>
|
|
23
|
+
</>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
export default OneButtonAction;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TouchableOpacity } from 'react-native';
|
|
3
|
+
import Text from '../Text';
|
|
4
|
+
import styles from './ThreeButtonActionStyles';
|
|
5
|
+
|
|
6
|
+
const ThreeButtonAction = ({ configuration, onPress }) => {
|
|
7
|
+
const { text1, text2, text3, action1, action2, action3 } = configuration;
|
|
8
|
+
const onPressAction1 = () => {
|
|
9
|
+
onPress &&
|
|
10
|
+
onPress({
|
|
11
|
+
name: text1,
|
|
12
|
+
action: action1,
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const onPressAction2 = () => {
|
|
17
|
+
onPress &&
|
|
18
|
+
onPress({
|
|
19
|
+
name: text2,
|
|
20
|
+
action: action2,
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const onPressAction3 = () => {
|
|
25
|
+
onPress &&
|
|
26
|
+
onPress({
|
|
27
|
+
name: text3,
|
|
28
|
+
action: action3,
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<>
|
|
34
|
+
<TouchableOpacity onPress={onPressAction1}>
|
|
35
|
+
<Text type="H4" style={styles.textwithline}>
|
|
36
|
+
{text1}
|
|
37
|
+
</Text>
|
|
38
|
+
</TouchableOpacity>
|
|
39
|
+
|
|
40
|
+
<TouchableOpacity onPress={onPressAction2}>
|
|
41
|
+
<Text type="H4" style={styles.textwithline}>
|
|
42
|
+
{text2}
|
|
43
|
+
</Text>
|
|
44
|
+
</TouchableOpacity>
|
|
45
|
+
|
|
46
|
+
<TouchableOpacity onPress={onPressAction3}>
|
|
47
|
+
<Text type="H4" style={styles.textwithline}>
|
|
48
|
+
{text3}
|
|
49
|
+
</Text>
|
|
50
|
+
</TouchableOpacity>
|
|
51
|
+
</>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default ThreeButtonAction;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import renderer, { act } from 'react-test-renderer';
|
|
3
|
+
import { TouchableOpacity } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import OnOffButtonAction from '../OnOffButtonAction';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
|
+
|
|
9
|
+
const wrapComponent = (configuration, onPress) => (
|
|
10
|
+
<SCProvider initState={mockSCStore({})}>
|
|
11
|
+
<OnOffButtonAction configuration={configuration} onPress={onPress} />
|
|
12
|
+
</SCProvider>
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
describe('Test OnOffButtonAction', () => {
|
|
16
|
+
let tree;
|
|
17
|
+
|
|
18
|
+
test('test onPress', () => {
|
|
19
|
+
const configuration = {};
|
|
20
|
+
const mockFuntion = jest.fn();
|
|
21
|
+
act(() => {
|
|
22
|
+
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
|
+
});
|
|
24
|
+
const instance = tree.root;
|
|
25
|
+
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
26
|
+
|
|
27
|
+
expect(touchOpacity).toHaveLength(2);
|
|
28
|
+
act(() => {
|
|
29
|
+
touchOpacity[0].props.onPress();
|
|
30
|
+
touchOpacity[1].props.onPress();
|
|
31
|
+
});
|
|
32
|
+
expect(mockFuntion).toHaveBeenCalled();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import renderer, { act } from 'react-test-renderer';
|
|
3
|
+
import { TouchableOpacity } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import OneButtonAction from '../OneButtonAction';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
|
+
|
|
9
|
+
const wrapComponent = (configuration, onPress) => (
|
|
10
|
+
<SCProvider initState={mockSCStore({})}>
|
|
11
|
+
<OneButtonAction configuration={configuration} onPress={onPress} />
|
|
12
|
+
</SCProvider>
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
describe('Test OneButtonAction', () => {
|
|
16
|
+
let tree;
|
|
17
|
+
|
|
18
|
+
test('test onPress', () => {
|
|
19
|
+
const configuration = {};
|
|
20
|
+
const mockFuntion = jest.fn();
|
|
21
|
+
act(() => {
|
|
22
|
+
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
|
+
});
|
|
24
|
+
const instance = tree.root;
|
|
25
|
+
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
26
|
+
|
|
27
|
+
expect(touchOpacity).toHaveLength(1);
|
|
28
|
+
act(() => {
|
|
29
|
+
touchOpacity[0].props.onPress();
|
|
30
|
+
});
|
|
31
|
+
expect(mockFuntion).toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import renderer, { act } from 'react-test-renderer';
|
|
3
|
+
import { TouchableOpacity } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import ThreeButtonAction from '../ThreeButtonAction';
|
|
6
|
+
import { SCProvider } from '../../../context';
|
|
7
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
|
+
|
|
9
|
+
const wrapComponent = (configuration, onPress) => (
|
|
10
|
+
<SCProvider initState={mockSCStore({})}>
|
|
11
|
+
<ThreeButtonAction configuration={configuration} onPress={onPress} />
|
|
12
|
+
</SCProvider>
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
describe('Test ThreeButtonAction', () => {
|
|
16
|
+
let tree;
|
|
17
|
+
|
|
18
|
+
test('test onPress', () => {
|
|
19
|
+
const configuration = {};
|
|
20
|
+
const mockFuntion = jest.fn();
|
|
21
|
+
act(() => {
|
|
22
|
+
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
|
+
});
|
|
24
|
+
const instance = tree.root;
|
|
25
|
+
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
26
|
+
|
|
27
|
+
expect(touchOpacity).toHaveLength(3);
|
|
28
|
+
act(() => {
|
|
29
|
+
touchOpacity[0].props.onPress();
|
|
30
|
+
touchOpacity[1].props.onPress();
|
|
31
|
+
touchOpacity[2].props.onPress();
|
|
32
|
+
});
|
|
33
|
+
expect(mockFuntion).toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import renderer, { act } from 'react-test-renderer';
|
|
3
|
+
|
|
4
|
+
import ActionTemplate from '..';
|
|
5
|
+
import { SCProvider } from '../../../context';
|
|
6
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
7
|
+
import SelectActionCard from '../../SelectActionCard';
|
|
8
|
+
import Modal from 'react-native-modal';
|
|
9
|
+
|
|
10
|
+
const mockSetState = jest.fn();
|
|
11
|
+
jest.mock('react', () => {
|
|
12
|
+
return {
|
|
13
|
+
...jest.requireActual('react'),
|
|
14
|
+
memo: (x) => x,
|
|
15
|
+
useState: jest.fn((init) => [init, mockSetState]),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
const wrapComponent = (data, onSelectAction, action) => (
|
|
20
|
+
<SCProvider initState={mockSCStore({})}>
|
|
21
|
+
<ActionTemplate
|
|
22
|
+
data={data}
|
|
23
|
+
onSelectAction={onSelectAction}
|
|
24
|
+
action={action}
|
|
25
|
+
/>
|
|
26
|
+
</SCProvider>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
describe('Test ActionTemplate', () => {
|
|
30
|
+
let tree;
|
|
31
|
+
test('test state visible', () => {
|
|
32
|
+
const data = [
|
|
33
|
+
{
|
|
34
|
+
title: '',
|
|
35
|
+
template: 'three_button_action_template',
|
|
36
|
+
configuration: {
|
|
37
|
+
action1: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
38
|
+
action2: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
39
|
+
action3: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
40
|
+
icon1: 'up',
|
|
41
|
+
icon2: 'stop',
|
|
42
|
+
icon3: 'down',
|
|
43
|
+
text1: 'OPEN',
|
|
44
|
+
text2: 'STOP',
|
|
45
|
+
text3: 'CLOSE',
|
|
46
|
+
text_lock: 'Door lock',
|
|
47
|
+
is_display_lock: true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
const setState = jest.fn();
|
|
52
|
+
const mockFunction = jest.fn();
|
|
53
|
+
useState.mockImplementation((init) => [init, setState]);
|
|
54
|
+
act(() => {
|
|
55
|
+
tree = renderer.create(wrapComponent(data, mockFunction, mockFunction));
|
|
56
|
+
});
|
|
57
|
+
const instance = tree.root;
|
|
58
|
+
|
|
59
|
+
const selectActionCard = instance.findByType(SelectActionCard);
|
|
60
|
+
const modal = instance.findByType(Modal);
|
|
61
|
+
act(() => {
|
|
62
|
+
selectActionCard.props.onPress();
|
|
63
|
+
});
|
|
64
|
+
expect(setState).toHaveBeenCalledWith(true);
|
|
65
|
+
|
|
66
|
+
act(() => {
|
|
67
|
+
modal.props.onBackButtonPress();
|
|
68
|
+
});
|
|
69
|
+
expect(setState).toHaveBeenCalledWith(false);
|
|
70
|
+
});
|
|
71
|
+
});
|