@eohjsc/react-native-smart-city 0.3.90 → 0.3.92
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/package.json +1 -1
- package/src/Images/Common/reorder.svg +3 -0
- package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/AutoLockStyles.js +1 -1
- package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +3 -1
- package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/index.js +3 -3
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +3 -10
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +1 -0
- package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/SetupGeneratePasscodeStyles.js +1 -1
- package/src/commons/ActionGroup/OnOffTemplate/SwitchButtonTemplate.js +13 -5
- package/src/commons/ActionGroup/SliderRangeTemplate.js +100 -69
- package/src/commons/ActionGroup/SliderRangeTemplateStyles.js +27 -27
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +4 -1
- package/src/commons/ActionGroup/__test__/NumberUpDownTemplate.test.js +1 -1
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +4 -1
- package/src/commons/ActionGroup/__test__/SliderRangeTemplate.test.js +56 -0
- package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +2 -2
- package/src/commons/ActionGroup/__test__/SwitchButtonTemplate.test.js +45 -8
- package/src/commons/ActionGroup/__test__/index.test.js +0 -19
- package/src/commons/ActionGroup/index.js +0 -3
- package/src/commons/ActionTemplate/CurtainAction.js +5 -5
- package/src/commons/ActionTemplate/CurtainActionStyles.js +1 -1
- package/src/commons/ActionTemplate/OnOffButtonAction.js +4 -4
- package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +1 -1
- package/src/commons/ActionTemplate/OnOffSimpleAction.js +4 -4
- package/src/commons/ActionTemplate/OnOffSimpleActionStyles.js +1 -1
- package/src/commons/ActionTemplate/OnOffSmartLockAction.js +4 -4
- package/src/commons/ActionTemplate/OnOffSmartLockActionStyles.js +1 -1
- package/src/commons/ActionTemplate/OneButtonAction.js +3 -3
- package/src/commons/ActionTemplate/OneButtonActionStyles.js +1 -1
- package/src/commons/ActionTemplate/ThreeButtonAction.js +5 -5
- package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +1 -1
- package/src/commons/ActionTemplate/__test__/CurtainAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/OnOffSimpleAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/OnOffSmartLockAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +1 -1
- package/src/commons/ActionTemplate/__test__/index.test.js +21 -70
- package/src/commons/ActionTemplate/index.js +19 -55
- package/src/commons/Alert/__test__/Alert.test.js +1 -1
- package/src/commons/Auth/AccountList.js +1 -1
- package/src/commons/Auth/__test__/OtpInputList.test.js +17 -19
- package/src/commons/Automate/ItemAutomate.js +10 -4
- package/src/commons/Automate/__test__/ItemAutomate.test.js +11 -11
- package/src/commons/BackDefault/__test__/BackDefault.test.js +1 -1
- package/src/commons/Button/__test__/Button.test.js +1 -1
- package/src/commons/ButtonPopup/__test__/ButtonPopup.test.js +1 -1
- package/src/commons/Calendar/__test__/Calendar.test.js +1 -1
- package/src/commons/ChartLoading/__test__/ChartLoading.test.js +1 -1
- package/src/commons/CircleButton/__test__/CircleButton.test.js +1 -1
- package/src/commons/CircleView/__test__/CircleView.test.js +1 -1
- package/src/commons/DateTimeRangeChange/__test__/DateTimeButton.test.js +4 -2
- package/src/commons/DateTimeRangeChange/index.js +31 -48
- package/src/commons/Device/DeviceAlertStatus.js +2 -1
- package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +2 -2
- package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +1 -1
- package/src/commons/Device/FlatListItems.js +1 -1
- package/src/commons/Device/Hanet/ItemHanetDevice.test.js +2 -2
- package/src/commons/Device/HistoryChart.js +6 -49
- package/src/commons/Device/LinearChart/LinearChart.test.js +1 -1
- package/src/commons/Device/ProgressBar/__test__/ProgressBar.test.js +1 -1
- package/src/commons/Device/ProgressBar/index.js +5 -11
- package/src/commons/Device/ProgressBar/styles.js +11 -3
- package/src/commons/Device/RainningSensor/__test__/CurrentRainSensor.test.js +5 -5
- package/src/commons/Device/SonosSpeaker/__test__/SonosSpeaker.test.js +3 -3
- package/src/commons/Device/WindDirection/Compass/Compass.test.js +2 -2
- package/src/commons/Device/WindSpeed/Anemometer/index.js +2 -0
- package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +14 -1
- package/src/commons/Device/WindSpeed/LinearChart/index.js +5 -3
- package/src/commons/Device/__test__/DeviceAlertStatus.test.js +3 -3
- package/src/commons/Device/__test__/DisconnectedView.test.js +2 -2
- package/src/commons/Device/__test__/FlatListItems.test.js +1 -1
- package/src/commons/Device/__test__/SensorConnectedStatus.test.js +1 -1
- package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +1 -1
- package/src/commons/FlatListDnD/__test__/index.test.js +49 -0
- package/src/commons/FlatListDnD/index.js +37 -0
- package/src/commons/FlatListDnD/styles.js +12 -0
- package/src/commons/Form/__test__/CurrencyInput.test.js +2 -2
- package/src/commons/Form/__test__/TextInput.test.js +3 -3
- package/src/commons/Form/__test__/TextInputPassword.test.js +2 -2
- package/src/commons/FullLoading/__test__/index.test.js +2 -2
- package/src/commons/Header/HeaderCustom.js +2 -1
- package/src/commons/HorizontalPicker/index.js +65 -38
- package/src/commons/IconComponent/index.js +3 -2
- package/src/commons/ImageButton/__test__/ImageButton.test.js +1 -1
- package/src/commons/MediaPlayer/__test__/index.test.js +8 -3
- package/src/commons/MediaPlayer/index.js +11 -7
- package/src/commons/MenuActionMore/index.js +6 -4
- package/src/commons/Modal/ModalBottom.js +2 -3
- package/src/commons/Modal/ModalCustom.js +2 -3
- package/src/commons/NavBar/index.js +48 -50
- package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +3 -3
- package/src/commons/OneTapTemplate/NumberUpDownActionTemplateStyles.js +1 -1
- package/src/commons/OneTapTemplate/OptionsDropdownActionTemplate.js +5 -5
- package/src/commons/OneTapTemplate/OptionsDropdownActionTemplateStyles.js +1 -1
- package/src/commons/OneTapTemplate/StatesGridActionTemplate.js +5 -5
- package/src/commons/OneTapTemplate/StatesGridActionTemplateStyles.js +1 -1
- package/src/commons/OneTapTemplate/__test__/NumberUpDownActionTemplate.test.js +2 -2
- package/src/commons/OneTapTemplate/__test__/OptionsDropdownActionTemplate.test.js +1 -1
- package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +2 -2
- package/src/commons/PreventAccess/index.js +1 -1
- package/src/commons/RowItem/__test__/RowItem.test.js +1 -1
- package/src/commons/RowUser/__test__/RowUser.test.js +1 -1
- package/src/commons/Section/Section.test.js +2 -2
- package/src/commons/SelectSubUnit/__test__/SelectSubUnit.test.js +1 -1
- package/src/commons/SelectUnit/__test__/SelectUnit.test.js +3 -3
- package/src/commons/Sharing/StationDevicePermissions.js +4 -4
- package/src/commons/Sharing/WrapHeaderScrollable.js +5 -5
- package/src/commons/Sharing/__test__/ButtonRemoveMember.test.js +1 -1
- package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +3 -3
- package/src/commons/Sharing/__test__/MemberList.test.js +6 -4
- package/src/commons/Sharing/__test__/RowMember.test.js +2 -2
- package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +4 -2
- package/src/commons/SubUnit/OneTap/ItemOneTap.js +7 -11
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +13 -16
- package/src/commons/SubUnit/OneTap/index.js +22 -7
- package/src/commons/TextButton/__test__/TextButton.test.js +2 -2
- package/src/commons/Today/__test__/Today.test.js +1 -1
- package/src/commons/TouchableScale/__test__/TouchableScale.test.js +1 -1
- package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +4 -0
- package/src/commons/UnitSummary/AirQuality/index.js +2 -2
- package/src/commons/UnitSummary/ConfigHistoryChart/__test__/ConfigHistoryChart.test.js +1 -1
- package/src/commons/UnitSummary/ConfigHistoryChart/index.js +0 -6
- package/src/commons/UnitSummary/__test__/TotalPowerBox.test.js +1 -1
- package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +1 -1
- package/src/commons/ViewButtonBottom/__test__/ViewButtonBottom.test.js +1 -1
- package/src/configs/API.js +14 -31
- package/src/configs/AccessibilityLabel.js +1 -0
- package/src/configs/Colors.js +1 -1
- package/src/configs/Constants.js +14 -48
- package/src/context/reducer.ts +3 -1
- package/src/hoc/__test__/withRemoteControl.test.js +1 -1
- package/src/hooks/Common/__test__/useStatusbar.test.js +5 -5
- package/src/hooks/Common/index.js +0 -2
- package/src/hooks/Common/useKeyboardShow.js +4 -4
- package/src/hooks/Common/useStatusBar.js +2 -2
- package/src/hooks/Common/useTitleHeader.js +5 -7
- package/src/hooks/IoT/__test__/useRemoteControl.test.js +11 -0
- package/src/hooks/IoT/useBluetoothConnection.js +6 -3
- package/src/hooks/index.js +1 -2
- package/src/navigations/UnitStack.js +51 -17
- package/src/screens/ActivityLog/FilterPopup.js +4 -4
- package/src/screens/ActivityLog/__test__/FilterPopup.test.js +2 -2
- package/src/screens/ActivityLog/__test__/index.test.js +2 -2
- package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +3 -3
- package/src/screens/AddCommon/__test__/SelectUnit.test.js +5 -5
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +9 -33
- package/src/screens/AddNewAutoSmart/index.js +33 -89
- package/src/screens/AddNewGateway/PlugAndPlay/__test__/ConnectRouterGuide.test.js +1 -1
- package/src/screens/AddNewGateway/PlugAndPlay/__test__/FirstWarning.test.js +1 -1
- package/src/screens/AddNewGateway/PlugAndPlay/__test__/ZigbeeDeviceConnectGuide.test.js +1 -1
- package/src/screens/AddNewGateway/SelectDeviceSubUnit.js +1 -2
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +5 -17
- package/src/screens/AddNewGateway/__test__/ConnectingWifiGuide.test.js +1 -1
- package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +2 -2
- package/src/screens/AddNewGateway/__test__/ScanModbusQR.test.js +3 -3
- package/src/screens/AddNewGateway/__test__/ScanWifiDeviceQR.test.js +2 -2
- package/src/screens/AddNewGateway/__test__/SelectDeviceSubUnit.test.js +8 -16
- package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +10 -12
- package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +6 -14
- package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +6 -14
- package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +1 -1
- package/src/screens/AddNewGateway/hooks/__Tests__/useWifiManage.test.js +3 -2
- package/src/screens/AddNewGateway/index.js +1 -1
- package/src/screens/AllCamera/__test__/index.test.js +18 -57
- package/src/screens/AllCamera/index.js +100 -33
- package/src/screens/AllGateway/DetailConfigActionZigbee/__test__/index.test.js +0 -18
- package/src/screens/AllGateway/DetailConfigActionZigbee/index.js +1 -1
- package/src/screens/AllGateway/DeviceModbusDetail/__test__/index.test.js +5 -2
- package/src/screens/AllGateway/hooks/__test__/index.test.js +1 -1
- package/src/screens/Automate/AddNewAction/ChooseAction.js +139 -0
- package/src/screens/Automate/AddNewAction/ChooseConfig.js +179 -0
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Components/LoadingSelectAction.js +1 -1
- package/src/screens/Automate/AddNewAction/Components/SelectDevices.js +75 -0
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/DeviceStyles.js +5 -1
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/__test__/index.test.js +4 -4
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Device/index.js +5 -4
- package/src/screens/Automate/AddNewAction/NewActionWrapper.js +56 -0
- package/src/screens/Automate/AddNewAction/SelectControlDevices.js +69 -0
- package/src/screens/Automate/AddNewAction/SelectMonitorDevices.js +110 -0
- package/src/screens/Automate/AddNewAction/SetupConfigCondition.js +196 -0
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SelectActionStyles.js +1 -1
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SelectSensorDevicesStyles.js +1 -1
- package/src/screens/{AddNewAction → Automate/AddNewAction}/Styles/SetupSensorStyles.js +5 -3
- package/src/screens/{AddNewAction/__test__/SelectAction.test.js → Automate/AddNewAction/__test__/ChooseAction.test.js} +101 -122
- package/src/screens/Automate/AddNewAction/__test__/ChooseConfig.test.js +210 -0
- package/src/screens/Automate/AddNewAction/__test__/SelectControlDevices.test.js +130 -0
- package/src/screens/Automate/AddNewAction/__test__/SelectMonitorDevices.test.js +92 -0
- package/src/screens/Automate/AddNewAction/__test__/SetupSensor.test.js +131 -0
- package/src/screens/Automate/Components/InputName.js +64 -0
- package/src/screens/{AddNewOneTap/AddNewOneTapStyles.js → Automate/Components/InputNameStyles.js} +2 -2
- package/src/screens/{EditActionsList → Automate/EditActionsList}/Styles/indexStyles.js +5 -1
- package/src/screens/{EditActionsList → Automate/EditActionsList}/__tests__/index.test.js +20 -12
- package/src/screens/{EditActionsList → Automate/EditActionsList}/index.js +18 -19
- package/src/screens/Automate/MultiUnits.js +70 -68
- package/src/screens/Automate/OneTap/__test__/AddNewOneTap.test.js +134 -0
- package/src/screens/Automate/OneTap/index.js +16 -0
- package/src/screens/Automate/Scenario/ScenarioName.js +15 -0
- package/src/screens/{AddNewOneTap → Automate/Scenario}/__test__/AddNewOneTap.test.js +27 -45
- package/src/screens/Automate/ScriptDetail/Components/DeleteScript.js +45 -0
- package/src/screens/Automate/ScriptDetail/Components/RenameScript.js +58 -0
- package/src/screens/{ScriptDetail → Automate/ScriptDetail}/Styles/indexStyles.js +1 -1
- package/src/screens/{ScriptDetail → Automate/ScriptDetail}/__test__/index.test.js +67 -76
- package/src/screens/{ScriptDetail → Automate/ScriptDetail}/__test__/useStarredScript.test.js +7 -6
- package/src/screens/{ScriptDetail → Automate/ScriptDetail}/hooks/useStarredScript.js +4 -4
- package/src/screens/Automate/ScriptDetail/index.js +346 -0
- package/src/screens/Automate/ScriptDetail/utils.js +113 -0
- package/src/screens/{SetSchedule → Automate/SetSchedule}/__test__/SelectWeekday.test.js +2 -2
- package/src/screens/{SetSchedule → Automate/SetSchedule}/__test__/index.test.js +21 -46
- package/src/screens/{SetSchedule → Automate/SetSchedule}/components/RepeatOptionsPopup.js +4 -4
- package/src/screens/{SetSchedule → Automate/SetSchedule}/components/RowItem.js +2 -2
- package/src/screens/{SetSchedule → Automate/SetSchedule}/components/SelectWeekday.js +3 -3
- package/src/screens/Automate/SetSchedule/index.js +140 -0
- package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/RepeatOptionsPopupStyles.js +1 -1
- package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/RowItemStyles.js +1 -1
- package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/SelectWeekdayStyles.js +1 -1
- package/src/screens/{SetSchedule → Automate/SetSchedule}/styles/indexStyles.js +1 -1
- package/src/screens/Automate/ValueChange/ValueChangeName.js +16 -0
- package/src/screens/Automate/__test__/MultiUnits.test.js +78 -122
- package/src/screens/Automate/__test__/index.test.js +21 -47
- package/src/screens/Automate/constants.js +0 -0
- package/src/screens/Automate/index.js +18 -24
- package/src/screens/ChangePosition/__test__/index.test.js +75 -0
- package/src/screens/ChangePosition/index.js +112 -0
- package/src/screens/ChangePosition/styles.js +87 -0
- package/src/screens/Device/__test__/DetailHistoryChart.test.js +2 -2
- package/src/screens/Device/__test__/EmergencyCountdown.test.js +4 -2
- package/src/screens/Device/__test__/detail.test.js +202 -257
- package/src/screens/Device/__test__/sensorDisplayItem.test.js +14 -10
- package/src/screens/Device/components/ChartWrapper.js +3 -3
- package/src/screens/Device/components/SensorDisplayItem.js +2 -1
- package/src/screens/Device/components/VisualChart.js +56 -9
- package/src/screens/Device/components/__test__/VisualChart.test.js +1 -1
- package/src/screens/Device/detail.js +14 -0
- package/src/screens/Device/hooks/__test__/useEmergencyButton.test.js +35 -13
- package/src/screens/Device/hooks/useEvaluateValue.js +28 -2
- package/src/screens/Device/styles.js +7 -0
- package/src/screens/DeviceInfo/__test__/index.test.js +16 -18
- package/src/screens/DeviceInfo/index.js +6 -5
- package/src/screens/GuestInfo/components/__test__/AccessScheduleSheet.test.js +52 -0
- package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +18 -13
- package/src/screens/Notification/__test__/Notification.test.js +64 -73
- package/src/screens/Notification/index.js +14 -14
- package/src/screens/PlayBackCamera/index.js +2 -3
- package/src/screens/SelectUnit/__test__/index.test.js +0 -5
- package/src/screens/SelectUnit/index.js +1 -2
- package/src/screens/SharedUnit/index.js +5 -4
- package/src/screens/Sharing/Components/TitleCheckBox.js +2 -2
- package/src/screens/Sharing/SelectUser.js +2 -2
- package/src/screens/Sharing/__test__/MemberList.test.js +9 -15
- package/src/screens/Sharing/__test__/MemberList2.test.js +10 -16
- package/src/screens/Sharing/__test__/SelectUser.test.js +8 -4
- package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +1 -1
- package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js +3 -3
- package/src/screens/SmartAccount/__test__/Connecting.test.js +1 -1
- package/src/screens/SmartAccount/__test__/SmartAccount.test.js +3 -3
- package/src/screens/SmartAccount/index.js +1 -0
- package/src/screens/SmartIr/__test__/ButtonsBottom.test.js +1 -1
- package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +5 -5
- package/src/screens/SmartIr/__test__/SelectBrand.test.js +2 -2
- package/src/screens/SmartIr/__test__/SelectDeviceType.test.js +2 -2
- package/src/screens/SmartIr/__test__/SmartIr.test.js +2 -2
- package/src/screens/SubUnit/ManageSubUnit.js +4 -4
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +9 -28
- package/src/screens/TDSGuide/index.js +1 -1
- package/src/screens/Template/GatewayList.js +4 -1
- package/src/screens/Template/__test__/detail.test.js +24 -22
- package/src/screens/Template/detail.js +1 -0
- package/src/screens/UVIndexGuide/index.js +2 -2
- package/src/screens/Unit/Detail.js +6 -5
- package/src/screens/Unit/SelectAddToFavorites.js +1 -1
- package/src/screens/Unit/__test__/ChooseLocation.test.js +8 -13
- package/src/screens/Unit/__test__/Detail.test.js +10 -14
- package/src/screens/Unit/__test__/SelectAddToFavorites.test.js +1 -1
- package/src/screens/Unit/__test__/SmartAccount.test.js +8 -14
- package/src/screens/Unit/components/__test__/Header.test.js +4 -4
- package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +1 -1
- package/src/screens/UnitSummary/components/3PPowerConsumption/index.js +14 -6
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +1 -1
- package/src/screens/UnitSummary/components/Temperature/index.js +2 -2
- package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +4 -0
- package/src/screens/UnitSummary/components/UvIndex/index.js +2 -2
- package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +6 -11
- package/src/screens/UnitSummary/components/WaterQuality/index.js +2 -2
- package/src/screens/UnitSummary/components/__test__/TotalPowerBox.test.js +1 -1
- package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +1 -1
- package/src/screens/UnitSummary/components/__test__/index.test.js +2 -2
- package/src/screens/WaterQualityGuide/index.js +10 -5
- package/src/utils/Apis/axios.js +3 -0
- package/src/utils/I18n/translations/en.json +24 -18
- package/src/utils/I18n/translations/vi.json +22 -18
- package/src/utils/Route/index.js +9 -3
- package/src/utils/Utils.js +29 -0
- package/src/utils/__test__/Utils.test.js +6 -0
- package/src/commons/ActionGroup/CurtainButtonTemplate.js +0 -130
- package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +0 -109
- package/src/commons/Auth/SocialButton.js +0 -54
- package/src/commons/Auth/__test__/SocialButton.test.js +0 -44
- package/src/commons/Sharing/__test__/StationDevicePermission.test.js +0 -85
- package/src/hooks/__test__/useInitDeepLink.test.js +0 -28
- package/src/hooks/useInitDeepLink.js +0 -25
- package/src/screens/AddNewAction/SelectAction.js +0 -570
- package/src/screens/AddNewAction/SelectSensorDevices.js +0 -236
- package/src/screens/AddNewAction/SetupSensor.js +0 -263
- package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +0 -181
- package/src/screens/AddNewAction/__test__/SetupSensor.test.js +0 -114
- package/src/screens/AddNewOneTap/index.js +0 -147
- package/src/screens/ScriptDetail/hooks/index.js +0 -136
- package/src/screens/ScriptDetail/index.js +0 -525
- package/src/screens/SetSchedule/index.js +0 -200
- /package/src/screens/{AddNewAction → Automate/AddNewAction}/Components/index.js +0 -0
- /package/src/screens/{AddNewAction → Automate/AddNewAction}/__test__/LoadingSelectAction.test.js +0 -0
|
@@ -487,25 +487,6 @@ describe('Test ActionGroup', () => {
|
|
|
487
487
|
expect(options).toHaveLength(actionGroup.configuration.options.length);
|
|
488
488
|
});
|
|
489
489
|
|
|
490
|
-
it('render CurtainButtonTemplate', async () => {
|
|
491
|
-
// todo Bang remove
|
|
492
|
-
Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
|
|
493
|
-
const actionGroup = {
|
|
494
|
-
template: 'curtain_action_template',
|
|
495
|
-
title: 'Timer',
|
|
496
|
-
configuration: {},
|
|
497
|
-
};
|
|
498
|
-
const mockDoAction = jest.fn();
|
|
499
|
-
await act(async () => {
|
|
500
|
-
wrapper = renderer.create(
|
|
501
|
-
wrapComponent(actionGroup, mockDoAction, sensor)
|
|
502
|
-
);
|
|
503
|
-
});
|
|
504
|
-
const instance = wrapper.root;
|
|
505
|
-
const texts = instance.findAllByType(TouchableOpacity);
|
|
506
|
-
expect(texts).toHaveLength(3);
|
|
507
|
-
});
|
|
508
|
-
|
|
509
490
|
it('render SmartTiviActionTemplate', async () => {
|
|
510
491
|
Date.now = jest.fn(() => new Date('2021-09-09T10:00:00.000Z'));
|
|
511
492
|
const actionGroup = {
|
|
@@ -7,7 +7,6 @@ import NumberUpDownActionTemplate from './NumberUpDownActionTemplate';
|
|
|
7
7
|
import OptionsDropdownActionTemplate from './OptionsDropdownActionTemplate';
|
|
8
8
|
import OnOffTemplate from './OnOffTemplate';
|
|
9
9
|
import TimerActionTemplate from './TimerActionTemplate';
|
|
10
|
-
import CurtainButtonTemplate from './CurtainButtonTemplate';
|
|
11
10
|
import SmartTiviActionTemplate from './SmartTiviActionTemplate/SmartTiviActionTemplate';
|
|
12
11
|
import ColorPickerTemplate from './ColorPickerTemplate';
|
|
13
12
|
import SliderRangeTemplate from './SliderRangeTemplate';
|
|
@@ -37,8 +36,6 @@ export const getActionComponent = (template) => {
|
|
|
37
36
|
return OptionsDropdownActionTemplate;
|
|
38
37
|
case 'TimerActionTemplate':
|
|
39
38
|
return TimerActionTemplate;
|
|
40
|
-
case 'curtain_action_template':
|
|
41
|
-
return CurtainButtonTemplate;
|
|
42
39
|
case 'SmartTiviActionTemplate':
|
|
43
40
|
return SmartTiviActionTemplate;
|
|
44
41
|
case 'color_picker_template':
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import Text from '../Text';
|
|
4
4
|
import styles from './CurtainActionStyles';
|
|
@@ -37,19 +37,19 @@ const CurtainAction = ({ configuration, onPress, template }) => {
|
|
|
37
37
|
return (
|
|
38
38
|
<>
|
|
39
39
|
<TouchableOpacity onPress={onPressActionClose}>
|
|
40
|
-
<Text type="H4" style={styles.
|
|
40
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
41
41
|
{text1}
|
|
42
42
|
</Text>
|
|
43
43
|
</TouchableOpacity>
|
|
44
44
|
|
|
45
45
|
<TouchableOpacity onPress={onPressActionStop}>
|
|
46
|
-
<Text type="H4" style={styles.
|
|
46
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
47
47
|
{text2}
|
|
48
48
|
</Text>
|
|
49
49
|
</TouchableOpacity>
|
|
50
50
|
|
|
51
51
|
<TouchableOpacity onPress={onPressActionOpen}>
|
|
52
|
-
<Text type="H4" style={styles.
|
|
52
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
53
53
|
{text3}
|
|
54
54
|
</Text>
|
|
55
55
|
</TouchableOpacity>
|
|
@@ -57,4 +57,4 @@ const CurtainAction = ({ configuration, onPress, template }) => {
|
|
|
57
57
|
);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
export default
|
|
60
|
+
export default CurtainAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import AccessibilityLabel from '../../configs/AccessibilityLabel';
|
|
4
4
|
import Text from '../Text';
|
|
@@ -33,7 +33,7 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
|
|
|
33
33
|
<TouchableOpacity onPress={onPressActionOn}>
|
|
34
34
|
<Text
|
|
35
35
|
type="H4"
|
|
36
|
-
style={styles.
|
|
36
|
+
style={styles.textWithLine}
|
|
37
37
|
accessibilityLabel={AccessibilityLabel.ON_OFF_BUTTON_ACTION_TITLE}
|
|
38
38
|
>
|
|
39
39
|
{title} {text_on}
|
|
@@ -42,7 +42,7 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
|
|
|
42
42
|
<TouchableOpacity onPress={onPressActionOff}>
|
|
43
43
|
<Text
|
|
44
44
|
type="H4"
|
|
45
|
-
style={styles.
|
|
45
|
+
style={styles.textWithLine}
|
|
46
46
|
accessibilityLabel={AccessibilityLabel.ON_OFF_BUTTON_ACTION_TITLE}
|
|
47
47
|
>
|
|
48
48
|
{title} {text_off}
|
|
@@ -52,4 +52,4 @@ const OnOffButtonAction = ({ title, configuration, onPress, template }) => {
|
|
|
52
52
|
);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export default
|
|
55
|
+
export default OnOffButtonAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import Text from '../Text';
|
|
4
4
|
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
@@ -36,12 +36,12 @@ const OnOffSimpleAction = ({ configuration, onPress, template }) => {
|
|
|
36
36
|
accessibilityLabel={AccessibilityLabel.ON_OFF_SIMPLE_ACTION_ON}
|
|
37
37
|
onPress={onPressActionOn}
|
|
38
38
|
>
|
|
39
|
-
<Text type="H4" style={styles.
|
|
39
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
40
40
|
{t('text_on')}
|
|
41
41
|
</Text>
|
|
42
42
|
</TouchableOpacity>
|
|
43
43
|
<TouchableOpacity onPress={onPressActionOff}>
|
|
44
|
-
<Text type="H4" style={styles.
|
|
44
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
45
45
|
{t('text_off')}
|
|
46
46
|
</Text>
|
|
47
47
|
</TouchableOpacity>
|
|
@@ -49,4 +49,4 @@ const OnOffSimpleAction = ({ configuration, onPress, template }) => {
|
|
|
49
49
|
);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
export default
|
|
52
|
+
export default OnOffSimpleAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import Text from '../Text';
|
|
4
4
|
import styles from './OnOffSmartLockActionStyles';
|
|
@@ -31,13 +31,13 @@ const OnOffSmartLockAction = ({ configuration, onPress, template }) => {
|
|
|
31
31
|
return (
|
|
32
32
|
<>
|
|
33
33
|
<TouchableOpacity onPress={onPressActionClose}>
|
|
34
|
-
<Text type="H4" style={styles.
|
|
34
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
35
35
|
{text_off}
|
|
36
36
|
</Text>
|
|
37
37
|
</TouchableOpacity>
|
|
38
38
|
|
|
39
39
|
<TouchableOpacity onPress={onPressActionOpen}>
|
|
40
|
-
<Text type="H4" style={styles.
|
|
40
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
41
41
|
{text_on}
|
|
42
42
|
</Text>
|
|
43
43
|
</TouchableOpacity>
|
|
@@ -45,4 +45,4 @@ const OnOffSmartLockAction = ({ configuration, onPress, template }) => {
|
|
|
45
45
|
);
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
export default
|
|
48
|
+
export default OnOffSmartLockAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import Text from '../Text';
|
|
4
4
|
import styles from './OneButtonActionStyles';
|
|
@@ -17,11 +17,11 @@ const OneButtonAction = ({ configuration, onPress, template }) => {
|
|
|
17
17
|
return (
|
|
18
18
|
<>
|
|
19
19
|
<TouchableOpacity onPress={onPressAction}>
|
|
20
|
-
<Text type="H4" style={styles.
|
|
20
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
21
21
|
{text}
|
|
22
22
|
</Text>
|
|
23
23
|
</TouchableOpacity>
|
|
24
24
|
</>
|
|
25
25
|
);
|
|
26
26
|
};
|
|
27
|
-
export default
|
|
27
|
+
export default OneButtonAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
3
|
import Text from '../Text';
|
|
4
4
|
import styles from './ThreeButtonActionStyles';
|
|
@@ -35,19 +35,19 @@ const ThreeButtonAction = ({ configuration, onPress, template }) => {
|
|
|
35
35
|
return (
|
|
36
36
|
<>
|
|
37
37
|
<TouchableOpacity onPress={onPressAction1}>
|
|
38
|
-
<Text type="H4" style={styles.
|
|
38
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
39
39
|
{text1}
|
|
40
40
|
</Text>
|
|
41
41
|
</TouchableOpacity>
|
|
42
42
|
|
|
43
43
|
<TouchableOpacity onPress={onPressAction2}>
|
|
44
|
-
<Text type="H4" style={styles.
|
|
44
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
45
45
|
{text2}
|
|
46
46
|
</Text>
|
|
47
47
|
</TouchableOpacity>
|
|
48
48
|
|
|
49
49
|
<TouchableOpacity onPress={onPressAction3}>
|
|
50
|
-
<Text type="H4" style={styles.
|
|
50
|
+
<Text type="H4" style={styles.textWithLine}>
|
|
51
51
|
{text3}
|
|
52
52
|
</Text>
|
|
53
53
|
</TouchableOpacity>
|
|
@@ -55,4 +55,4 @@ const ThreeButtonAction = ({ configuration, onPress, template }) => {
|
|
|
55
55
|
);
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
export default
|
|
58
|
+
export default ThreeButtonAction;
|
|
@@ -26,7 +26,7 @@ describe('Test CurtainAction', () => {
|
|
|
26
26
|
};
|
|
27
27
|
const mockFuntion = jest.fn();
|
|
28
28
|
await act(async () => {
|
|
29
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
29
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
30
30
|
});
|
|
31
31
|
const instance = tree.root;
|
|
32
32
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -31,7 +31,7 @@ describe('Test OnOffButtonAction', () => {
|
|
|
31
31
|
};
|
|
32
32
|
const mockFuntion = jest.fn();
|
|
33
33
|
await act(async () => {
|
|
34
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
34
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
35
35
|
});
|
|
36
36
|
const instance = tree.root;
|
|
37
37
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -19,7 +19,7 @@ describe('Test OnOffSimpleAction', () => {
|
|
|
19
19
|
const configuration = {};
|
|
20
20
|
const mockFuntion = jest.fn();
|
|
21
21
|
await act(async () => {
|
|
22
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
22
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
23
|
});
|
|
24
24
|
const instance = tree.root;
|
|
25
25
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -24,7 +24,7 @@ describe('Test OnOffSmartLockAction', () => {
|
|
|
24
24
|
};
|
|
25
25
|
const mockFuntion = jest.fn();
|
|
26
26
|
await act(async () => {
|
|
27
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
27
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
28
28
|
});
|
|
29
29
|
const instance = tree.root;
|
|
30
30
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -19,7 +19,7 @@ describe('Test OneButtonAction', () => {
|
|
|
19
19
|
const configuration = {};
|
|
20
20
|
const mockFuntion = jest.fn();
|
|
21
21
|
await act(async () => {
|
|
22
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
22
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
23
|
});
|
|
24
24
|
const instance = tree.root;
|
|
25
25
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -19,7 +19,7 @@ describe('Test ThreeButtonAction', () => {
|
|
|
19
19
|
const configuration = {};
|
|
20
20
|
const mockFuntion = jest.fn();
|
|
21
21
|
await act(async () => {
|
|
22
|
-
tree = renderer.create(wrapComponent(configuration, mockFuntion));
|
|
22
|
+
tree = await renderer.create(wrapComponent(configuration, mockFuntion));
|
|
23
23
|
});
|
|
24
24
|
const instance = tree.root;
|
|
25
25
|
const touchOpacity = instance.findAllByType(TouchableOpacity);
|
|
@@ -10,84 +10,35 @@ import ThreeButtonAction from '../ThreeButtonAction';
|
|
|
10
10
|
|
|
11
11
|
const mockOnSelectAction = jest.fn();
|
|
12
12
|
|
|
13
|
-
const wrapComponent = (
|
|
13
|
+
const wrapComponent = (item) => (
|
|
14
14
|
<SCProvider initState={mockSCStore({})}>
|
|
15
|
-
<ActionTemplate
|
|
15
|
+
<ActionTemplate item={item} onSelectAction={mockOnSelectAction} />
|
|
16
16
|
</SCProvider>
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
describe('Test ActionTemplate', () => {
|
|
20
20
|
let tree;
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
is_display_lock: true,
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
title: '',
|
|
41
|
-
template: 'on_off_button_action_template',
|
|
42
|
-
configuration: {
|
|
43
|
-
action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
44
|
-
action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
45
|
-
text_on: 'On',
|
|
46
|
-
text_off: 'Off',
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
title: '',
|
|
51
|
-
template: 'one_button_action_template',
|
|
52
|
-
configuration: {
|
|
53
|
-
action: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
54
|
-
text: 'One',
|
|
55
|
-
},
|
|
21
|
+
let item = {
|
|
22
|
+
title: '',
|
|
23
|
+
template: 'three_button_action_template',
|
|
24
|
+
configuration: {
|
|
25
|
+
action1: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
26
|
+
action2: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
27
|
+
action3: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
28
|
+
icon1: 'up',
|
|
29
|
+
icon2: 'stop',
|
|
30
|
+
icon3: 'down',
|
|
31
|
+
text1: 'OPEN',
|
|
32
|
+
text2: 'STOP',
|
|
33
|
+
text3: 'CLOSE',
|
|
34
|
+
text_lock: 'Door lock',
|
|
35
|
+
is_display_lock: true,
|
|
56
36
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
template: 'OnOffSimpleActionTemplate',
|
|
60
|
-
configuration: {
|
|
61
|
-
action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
62
|
-
action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
title: '',
|
|
67
|
-
template: 'curtain_action_template',
|
|
68
|
-
configuration: {
|
|
69
|
-
open_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
70
|
-
close_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
71
|
-
stop_action: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
72
|
-
text1: 'One',
|
|
73
|
-
text2: 'Two',
|
|
74
|
-
text3: 'Three',
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
title: '',
|
|
79
|
-
template: 'OnOffSmartLockActionTemplate',
|
|
80
|
-
configuration: {
|
|
81
|
-
action_on: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
82
|
-
action_off: '94ae262d-46e3-42ff-9d10-516831ecc830',
|
|
83
|
-
text_on: 'on',
|
|
84
|
-
text_off: 'off',
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
];
|
|
37
|
+
};
|
|
38
|
+
|
|
88
39
|
it('test onPress SelectActionCard', async () => {
|
|
89
40
|
await act(async () => {
|
|
90
|
-
tree = renderer.create(wrapComponent(
|
|
41
|
+
tree = await renderer.create(wrapComponent(item));
|
|
91
42
|
});
|
|
92
43
|
const instance = tree.root;
|
|
93
44
|
const selectActionCard = instance.findByType(SelectActionCard);
|
|
@@ -100,7 +51,7 @@ describe('Test ActionTemplate', () => {
|
|
|
100
51
|
|
|
101
52
|
it('test onPressSelectAction', async () => {
|
|
102
53
|
await act(async () => {
|
|
103
|
-
tree = renderer.create(wrapComponent(
|
|
54
|
+
tree = await renderer.create(wrapComponent(item));
|
|
104
55
|
});
|
|
105
56
|
const instance = tree.root;
|
|
106
57
|
|
|
@@ -13,7 +13,7 @@ import CurtainAction from './CurtainAction';
|
|
|
13
13
|
import OnOffSmartLockAction from './OnOffSmartLockAction';
|
|
14
14
|
import { DEVICE_TYPE } from '../../configs/Constants';
|
|
15
15
|
|
|
16
|
-
const ActionTemplate = memo(({ device,
|
|
16
|
+
const ActionTemplate = memo(({ device, item, onSelectAction }) => {
|
|
17
17
|
const t = useTranslations();
|
|
18
18
|
const [visible, setVisible] = useState(false);
|
|
19
19
|
const onClose = () => setVisible(false);
|
|
@@ -47,66 +47,30 @@ const ActionTemplate = memo(({ device, data, onSelectAction }) => {
|
|
|
47
47
|
);
|
|
48
48
|
|
|
49
49
|
const renderAction = useMemo(() => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
);
|
|
68
|
-
case 'three_button_action_template':
|
|
69
|
-
return (
|
|
70
|
-
<ThreeButtonAction
|
|
71
|
-
{...item}
|
|
72
|
-
onPress={onPressSelectAction}
|
|
73
|
-
key={index}
|
|
74
|
-
/>
|
|
75
|
-
);
|
|
76
|
-
case 'OnOffSimpleActionTemplate':
|
|
77
|
-
return (
|
|
78
|
-
<OnOffSimpleAction
|
|
79
|
-
{...item}
|
|
80
|
-
onPress={onPressSelectAction}
|
|
81
|
-
key={index}
|
|
82
|
-
/>
|
|
83
|
-
);
|
|
84
|
-
case 'curtain_action_template':
|
|
85
|
-
return (
|
|
86
|
-
<CurtainAction
|
|
87
|
-
{...item}
|
|
88
|
-
onPress={onPressSelectAction}
|
|
89
|
-
key={index}
|
|
90
|
-
/>
|
|
91
|
-
);
|
|
92
|
-
case 'OnOffSmartLockActionTemplate':
|
|
93
|
-
return (
|
|
94
|
-
<OnOffSmartLockAction
|
|
95
|
-
{...item}
|
|
96
|
-
onPress={onPressSelectAction}
|
|
97
|
-
key={index}
|
|
98
|
-
/>
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}, [data, onPressSelectAction]);
|
|
50
|
+
switch (item.template) {
|
|
51
|
+
case 'on_off_button_action_template':
|
|
52
|
+
return <OnOffButtonAction {...item} onPress={onPressSelectAction} />;
|
|
53
|
+
case 'one_button_action_template':
|
|
54
|
+
return <OneButtonAction {...item} onPress={onPressSelectAction} />;
|
|
55
|
+
case 'three_button_action_template':
|
|
56
|
+
return <ThreeButtonAction {...item} onPress={onPressSelectAction} />;
|
|
57
|
+
case 'OnOffSimpleActionTemplate':
|
|
58
|
+
return <OnOffSimpleAction {...item} onPress={onPressSelectAction} />;
|
|
59
|
+
case 'curtain_action_template':
|
|
60
|
+
return <CurtainAction {...item} onPress={onPressSelectAction} />;
|
|
61
|
+
case 'OnOffSmartLockActionTemplate':
|
|
62
|
+
return <OnOffSmartLockAction {...item} onPress={onPressSelectAction} />;
|
|
63
|
+
default:
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}, [item, onPressSelectAction]);
|
|
103
67
|
|
|
104
68
|
return (
|
|
105
69
|
<>
|
|
106
70
|
<SelectActionCard
|
|
107
71
|
onPress={onPress}
|
|
108
72
|
action={actionName}
|
|
109
|
-
title={t(
|
|
73
|
+
title={t(item?.title === 'Power' ? 'power' : 'action')}
|
|
110
74
|
/>
|
|
111
75
|
|
|
112
76
|
<ModalCustom
|
|
@@ -7,7 +7,7 @@ describe('Test Alert', () => {
|
|
|
7
7
|
let tree;
|
|
8
8
|
it('create Alert', async () => {
|
|
9
9
|
await act(async () => {
|
|
10
|
-
tree = renderer.create(<Alert />);
|
|
10
|
+
tree = await renderer.create(<Alert />);
|
|
11
11
|
});
|
|
12
12
|
const instance = tree.root;
|
|
13
13
|
const Modals = instance.findAllByType(Modal);
|
|
@@ -7,7 +7,7 @@ const AccountList = ({ accounts }) => {
|
|
|
7
7
|
return (
|
|
8
8
|
<ScrollView scrollIndicatorInsets={{ right: 1 }}>
|
|
9
9
|
{accounts.map((account) => (
|
|
10
|
-
<AccountItem key={account.id
|
|
10
|
+
<AccountItem key={account.id} account={account} />
|
|
11
11
|
))}
|
|
12
12
|
</ScrollView>
|
|
13
13
|
);
|
|
@@ -10,39 +10,37 @@ describe('Test OtpInputList', () => {
|
|
|
10
10
|
let tree;
|
|
11
11
|
|
|
12
12
|
for (const code of list_code) {
|
|
13
|
-
|
|
13
|
+
it(`create OtpInputList ${code} onfinishInputCode is func`, async () => {
|
|
14
14
|
await act(async () => {
|
|
15
|
-
tree = renderer.create(
|
|
15
|
+
tree = await renderer.create(
|
|
16
|
+
<OtpInputList onfinishInputCode={mockFunc} />
|
|
17
|
+
);
|
|
16
18
|
});
|
|
17
19
|
|
|
18
20
|
const instance = tree.root;
|
|
19
21
|
const textInputs = instance.findAllByType(TextInput);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
})
|
|
27
|
-
);
|
|
22
|
+
for (let index = 0; index < textInputs.length; index++) {
|
|
23
|
+
await act(async () => {
|
|
24
|
+
textInputs[index].props.onFocus(code);
|
|
25
|
+
textInputs[index].props.onChangeText('1');
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
28
|
expect(mockFunc).toHaveBeenCalledWith('111111');
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
it('create OtpInputList not parameter', async () => {
|
|
33
33
|
await act(async () => {
|
|
34
|
-
tree = renderer.create(<OtpInputList />);
|
|
34
|
+
tree = await renderer.create(<OtpInputList />);
|
|
35
35
|
});
|
|
36
36
|
const instance = tree.root;
|
|
37
37
|
const textInputs = instance.findAllByType(TextInput);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})
|
|
45
|
-
);
|
|
38
|
+
for (let index = 0; index < textInputs.length; index++) {
|
|
39
|
+
await act(async () => {
|
|
40
|
+
textInputs[index].props.onFocus();
|
|
41
|
+
textInputs[index].props.onChangeText('1');
|
|
42
|
+
});
|
|
43
|
+
}
|
|
46
44
|
expect(mockFunc).toHaveBeenCalledWith('111111');
|
|
47
45
|
});
|
|
48
46
|
});
|
|
@@ -5,20 +5,26 @@ import { Colors } from '../../configs';
|
|
|
5
5
|
import styles from './ItemAutomateStyles';
|
|
6
6
|
import { AUTOMATES } from '../../configs/Constants';
|
|
7
7
|
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
8
|
+
import { generateAutomationConditionText } from '../../screens/Automate/ScriptDetail/utils';
|
|
9
|
+
import { useGetEvaluateValue } from '../../screens/Device/hooks/useEvaluateValue';
|
|
8
10
|
|
|
9
11
|
const ItemAutomate = ({
|
|
10
|
-
|
|
12
|
+
automate,
|
|
11
13
|
isSelected = false,
|
|
12
14
|
disabledOnPress = false,
|
|
13
|
-
textCondition,
|
|
14
15
|
index,
|
|
15
16
|
setSelectedIndex,
|
|
16
17
|
onPress,
|
|
17
18
|
}) => {
|
|
18
19
|
const t = useTranslations();
|
|
19
|
-
const item = AUTOMATES[type];
|
|
20
|
-
const isItemOneTap = AUTOMATES[type] === AUTOMATES.one_tap;
|
|
20
|
+
const item = AUTOMATES[automate?.type];
|
|
21
|
+
const isItemOneTap = AUTOMATES[automate?.type] === AUTOMATES.one_tap;
|
|
21
22
|
const Icon = item?.icon;
|
|
23
|
+
const valueEvaluation = useGetEvaluateValue(automate?.config);
|
|
24
|
+
|
|
25
|
+
const textCondition = useMemo(() => {
|
|
26
|
+
return generateAutomationConditionText(automate, valueEvaluation, t);
|
|
27
|
+
}, [automate, t, valueEvaluation]);
|
|
22
28
|
|
|
23
29
|
const renderText = useMemo(() => {
|
|
24
30
|
if (textCondition) {
|