@eohjsc/react-native-smart-city 0.7.3 → 0.7.4
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/assets/images/Automation-fill.svg +85 -0
- package/assets/images/Map/LocationPin.svg +10 -0
- package/assets/images/Scenario-filled.svg +22 -0
- package/assets/images/schedule-fill.svg +48 -0
- package/package.json +20 -17
- package/src/commons/Action/ItemQuickAction.js +1 -1
- package/src/commons/Action/__test__/ItemQuickAction.test.js +6 -6
- package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +3 -3
- package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/ButtonWrapper.js +3 -3
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/index.test.js +5 -5
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/index.js +3 -3
- package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/ButtonWrapper.js +2 -2
- package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +2 -2
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +2 -2
- package/src/commons/ActionGroup/SliderRangeTemplate.js +7 -7
- package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +2 -2
- package/src/commons/ActionGroup/SmartTiviActionTemplate/component/CircleButton.js +5 -5
- package/src/commons/ActionGroup/SmartTiviActionTemplate/component/ControlPlay.js +5 -5
- package/src/commons/ActionGroup/TerminalBoxTemplate.js +2 -2
- package/src/commons/ActionGroup/TextBoxTemplate.js +2 -2
- package/src/commons/ActionGroup/ThreeButtonTemplate/__test__/ThreeButtonCircle.test.js +2 -2
- package/src/commons/ActionGroup/ThreeButtonTemplate/__test__/ThreeButtonDefault.test.js +2 -2
- package/src/commons/ActionGroup/TimerActionTemplate.js +6 -3
- package/src/commons/ActionGroup/TwoButtonTemplate/index.js +2 -2
- package/src/commons/ActionGroup/__test__/ColorPickerTemplate.test.js +9 -10
- package/src/commons/ActionGroup/__test__/OnOffSmartLock.test.js +5 -5
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +5 -5
- package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +8 -8
- package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +3 -3
- package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -6
- package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -1
- package/src/commons/ActionGroup/__test__/index.test.js +6 -6
- package/src/commons/ActionGroup/index.js +2 -2
- package/src/commons/ActionTemplate/__test__/index.test.js +4 -4
- package/src/commons/Automate/ItemAutomate.js +9 -41
- package/src/commons/Automate/ItemConditionScriptDetail.js +109 -0
- package/src/commons/Automate/ItemConditionScriptDetailStyles.js +46 -0
- package/src/commons/Automate/__test__/ItemAutomate.test.js +0 -21
- package/src/commons/BackDefault/index.js +2 -2
- package/src/commons/BottomButtonView/index.js +1 -0
- package/src/commons/ButtonPopup/index.js +3 -2
- package/src/commons/ChartAggregationOption/__test__/FourButtonFilterHistory.test.js +2 -2
- package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +8 -9
- package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +7 -7
- package/src/commons/DateTimeRangeChange/DateTimeButton.js +3 -3
- package/src/commons/DateTimeRangeChange/index.js +1 -1
- package/src/commons/Device/ConnectedViewHeader.js +2 -2
- package/src/commons/Device/Emergency/EmergencyDetail.js +3 -3
- package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +1 -1
- package/src/commons/Device/FlatListItems.js +20 -19
- package/src/commons/Device/Hanet/ItemHanetDevice.js +3 -3
- package/src/commons/Device/Hanet/ItemHanetDevice.test.js +3 -3
- package/src/commons/Device/HorizontalBarChart.js +54 -34
- package/src/commons/Device/ItemAddNew/index.js +2 -2
- package/src/commons/Device/ItemDevice.js +5 -21
- package/src/commons/Device/SonosSpeaker/index.js +3 -3
- package/src/commons/Device/WaterPurifierStatus/AlertStatusMachine.js +2 -2
- package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +6 -2
- package/src/commons/DisplayChecking/index.js +2 -2
- package/src/commons/EmergencyButton/AlertSendConfirm.js +2 -2
- package/src/commons/FieldTemplate/ChooseUserField/index.js +2 -2
- package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +3 -3
- package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +6 -6
- package/src/commons/FlatListDnD/__test__/index.test.js +4 -4
- package/src/commons/FlatListDnD/index.js +12 -9
- package/src/commons/Grid/GridItem.js +10 -2
- package/src/commons/GroupCheckBox/__test__/GroupCheckBox.test.js +3 -3
- package/src/commons/Header/HeaderCustom.js +2 -2
- package/src/commons/Header/__test__/HeaderCT.test.js +3 -3
- package/src/commons/HeaderAni/index.js +2 -2
- package/src/commons/IconComponent/index.js +3 -3
- package/src/commons/ImagePicker/__test__/ImagePicker.test.js +5 -5
- package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +6 -4
- package/src/commons/MenuActionMore/MenuActionMoreStyles.js +2 -1
- package/src/commons/MenuActionMore/index.js +1 -1
- package/src/commons/NavBar/NavBarStyles.js +1 -1
- package/src/commons/NavBar/index.js +2 -2
- package/src/commons/OneTapTemplate/NumberUpDownActionTemplate.js +3 -3
- package/src/commons/OneTapTemplate/__test__/StatesGridActionTemplate.test.js +1 -1
- package/src/commons/Popover/__test__/index.test.js +3 -3
- package/src/commons/Processing/__test__/Connecting.test.js +4 -4
- package/src/commons/SearchLocation/index.js +3 -3
- package/src/commons/SelectActionCard/index.js +2 -2
- package/src/commons/SelectSubUnit/index.js +6 -2
- package/src/commons/SelectUnit/__test__/SelectUnit.test.js +5 -5
- package/src/commons/Sharing/BtnRemoveMember.js +2 -2
- package/src/commons/Sharing/StationDevicePermissions.js +2 -2
- package/src/commons/SubUnit/DeviceTemplate/ConfigAndEvaluation/ConfigAndEvaluation.js +2 -2
- package/src/commons/SubUnit/DeviceTemplate/ConfigValue/ConfigValue.js +2 -2
- package/src/commons/SubUnit/DeviceTemplate/EvaluationOverConfig/EvaluationOverConfig.js +2 -2
- package/src/commons/SubUnit/OneTap/ItemOneTap.js +6 -7
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +0 -2
- package/src/commons/SubUnit/OneTap/index.js +9 -8
- package/src/commons/SubUnit/__test__/ShortDetail.test.js +8 -8
- package/src/commons/Unit/HeaderUnit/index.js +30 -22
- package/src/commons/Unit/SharedUnit.js +7 -7
- package/src/commons/Widgets/IFrame/__tests__/IFrame.test.js +9 -13
- package/src/commons/Widgets/IFrameWithConfig/IFrameWithConfig.js +34 -2
- package/src/commons/Widgets/IFrameWithConfig/__tests__/IFrameWithConfig.test.js +88 -8
- package/src/commons/WrapParallaxScrollView/index.js +9 -10
- package/src/configs/API.js +1 -1
- package/src/configs/AccessibilityLabel.js +1 -0
- package/src/configs/Constants.js +3 -3
- package/src/configs/Theme.js +1 -1
- package/src/hooks/Common/__test__/useAndroidTranslucentStatusBar.test.js +5 -5
- package/src/hooks/IoT/__test__/useHomeAssistantConnection.test.js +12 -12
- package/src/hooks/IoT/__test__/useRemoteControl.test.js +14 -7
- package/src/hooks/IoT/__test__/useWatchConfigs.test.js +3 -3
- package/src/hooks/IoT/useRemoteControl.js +24 -13
- package/src/hooks/useMqtt.js +2 -2
- package/src/iot/RemoteControl/Bluetooth.js +19 -22
- package/src/iot/RemoteControl/Internet.js +13 -5
- package/src/iot/RemoteControl/__test__/Internet.test.js +7 -7
- package/src/navigations/EmergencyContactsStack.js +4 -3
- package/src/navigations/SharedStack.js +2 -0
- package/src/navigations/UnitStack.js +56 -57
- package/src/screens/AQIGuide/index.js +0 -2
- package/src/screens/ActivityLog/index.js +2 -2
- package/src/screens/AddLocationMaps/__test__/index.test.js +12 -12
- package/src/screens/AddLocationMaps/index.js +16 -19
- package/src/screens/AddLocationMaps/indexStyle.js +1 -0
- package/src/screens/AddNewGateway/RenameNewDevices.js +2 -2
- package/src/screens/AddNewGateway/SelectDeviceType.js +1 -1
- package/src/screens/AddNewGateway/ShareWifiPassword.js +16 -15
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +7 -7
- package/src/screens/AddNewGateway/__test__/ConnectingWifiDevice.test.js +8 -8
- package/src/screens/AddNewGateway/__test__/ConnectingZigbeeDevice.test.js +7 -7
- package/src/screens/AddNewGateway/__test__/RenameNewDevices.test.js +8 -8
- package/src/screens/AddNewGateway/__test__/ScanGatewayQR.test.js +5 -5
- package/src/screens/AddNewGateway/__test__/SelectDeviceUnit.test.js +4 -4
- package/src/screens/AddNewGateway/__test__/SelectModbusGateway.test.js +6 -6
- package/src/screens/AddNewGateway/__test__/SelectZigbeeGateway.test.js +6 -6
- package/src/screens/AddNewGateway/__test__/ShareWifiPassword.test.js +0 -4
- package/src/screens/AddNewGateway/hooks/__Tests__/useWifiManage.test.js +2 -2
- package/src/screens/AllGateway/DetailConfigActionModbus/__test__/index.test.js +6 -6
- package/src/screens/AllGateway/DeviceInternalDetail/__test__/index.test.js +19 -17
- package/src/screens/AllGateway/DeviceModbusDetail/__test__/index.test.js +19 -17
- package/src/screens/AllGateway/DeviceZigbeeDetail/__test__/index.test.js +18 -16
- package/src/screens/AllGateway/GatewayDetail/__test__/index.test.js +43 -35
- package/src/screens/AllGateway/GatewayInfo/__test__/index.test.js +38 -22
- package/src/screens/AllGateway/__test__/index.test.js +6 -6
- package/src/screens/AllGateway/components/Detail/__test__/index.test.js +3 -5
- package/src/screens/AllGateway/components/GatewayItem/__test__/index.test.js +3 -3
- package/src/screens/AllGateway/components/TabPaneCT/__test__/index.test.js +6 -6
- package/src/screens/AllGateway/hooks/__test__/index.test.js +2 -2
- package/src/screens/AllGateway/test-utils.js +3 -4
- package/src/screens/Automate/AddNewAction/ChooseAction.js +17 -3
- package/src/screens/Automate/AddNewAction/ChooseConfig.js +7 -6
- package/src/screens/Automate/AddNewAction/NewActionWrapper.js +8 -8
- package/src/screens/Automate/AddNewAction/SelectControlDevices.js +30 -20
- package/src/screens/Automate/AddNewAction/SelectMonitorDevices.js +17 -10
- package/src/screens/Automate/AddNewAction/SetupConfigCondition.js +58 -44
- package/src/screens/Automate/AddNewAction/SetupScriptDelay.js +1 -1
- package/src/screens/Automate/AddNewAction/SetupScriptNotify.js +3 -3
- package/src/screens/Automate/AddNewAction/Styles/SetupSensorStyles.js +20 -4
- package/src/screens/Automate/AddNewAction/__test__/ChooseAction.test.js +12 -12
- package/src/screens/Automate/AddNewAction/__test__/SelectControlDevices.test.js +14 -8
- package/src/screens/Automate/AddNewAction/__test__/SelectMonitorDevices.test.js +13 -7
- package/src/screens/Automate/AddNewAction/__test__/SetupConfigCondition.test.js +54 -15
- package/src/screens/Automate/AddNewAction/__test__/SetupScriptDelay.test.js +9 -9
- package/src/screens/Automate/AddNewAction/__test__/SetupScriptNotify.test.js +39 -10
- package/src/screens/Automate/AddNewAutoSmart/AddTypeSmart.js +10 -10
- package/src/screens/Automate/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +13 -8
- package/src/screens/Automate/Components/InputName.js +10 -7
- package/src/screens/Automate/EditActionsList/__tests__/UpdateActionScript.test.js +8 -8
- package/src/screens/Automate/EditActionsList/__tests__/UpdateDelayScript.test.js +6 -6
- package/src/screens/Automate/EditActionsList/__tests__/UpdateNotifyScript.test.js +7 -7
- package/src/screens/Automate/EditActionsList/index.js +19 -17
- package/src/screens/Automate/MultiUnits.js +19 -22
- package/src/screens/Automate/OneTap/__test__/AddNewOneTap.test.js +18 -8
- package/src/screens/Automate/Scenario/__test__/AddNewOneTap.test.js +15 -7
- package/src/screens/Automate/ScriptDetail/Components/AddActionScript.js +14 -6
- package/src/screens/Automate/ScriptDetail/Components/RenameScript.js +4 -7
- package/src/screens/Automate/ScriptDetail/__test__/index.test.js +42 -17
- package/src/screens/Automate/ScriptDetail/__test__/useStarredScript.test.js +6 -6
- package/src/screens/Automate/ScriptDetail/index.js +51 -40
- package/src/screens/Automate/SetSchedule/__test__/SelectWeekday.test.js +4 -4
- package/src/screens/Automate/SetSchedule/__test__/index.test.js +29 -18
- package/src/screens/Automate/SetSchedule/components/RowItem.js +5 -5
- package/src/screens/Automate/SetSchedule/index.js +8 -7
- package/src/screens/Automate/Styles/indexStyles.js +1 -1
- package/src/screens/Automate/__test__/MultiUnits.test.js +1 -4
- package/src/screens/Automate/__test__/index.test.js +0 -1
- package/src/screens/Automate/index.js +36 -34
- package/src/screens/ChangePosition/__test__/index.test.js +6 -6
- package/src/screens/ChangePosition/index.js +2 -1
- package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +13 -13
- package/src/screens/Device/EditDevice/index.js +4 -4
- package/src/screens/Device/__test__/BluetoothDevice.test.js +300 -0
- package/src/screens/Device/__test__/detail.test.js +14 -14
- package/src/screens/Device/__test__/mqttDetail.test.js +9 -9
- package/src/screens/Device/components/BluetoothDevice.js +135 -0
- package/src/screens/Device/components/SensorDisplayItem.js +9 -8
- package/src/screens/Device/detail.js +70 -62
- package/src/screens/Device/hooks/useEvaluateValue.js +1 -1
- package/src/screens/Drawer/Drawer.test.js +2 -2
- package/src/screens/Drawer/index.js +3 -3
- package/src/screens/EmergencyContacts/EmergencyContactsList.js +8 -4
- package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -3
- package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +7 -7
- package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
- package/src/screens/EnterPassword/__test__/EnterPassword.test.js +8 -8
- package/src/screens/GuestInfo/components/RowGuestInfo.js +2 -2
- package/src/screens/GuestInfo/components/__test__/AccessScheduleSheet.test.js +3 -3
- package/src/screens/GuestInfo/index.js +2 -2
- package/src/screens/HanetCamera/ManageAccess.js +3 -3
- package/src/screens/HanetCamera/MemberInfo.js +2 -2
- package/src/screens/HanetCamera/__test__/Detail.test.js +9 -9
- package/src/screens/HanetCamera/__test__/MemberInfo.test.js +10 -10
- package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -2
- package/src/screens/ManageAccess/index.js +3 -3
- package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +9 -9
- package/src/screens/Notification/__test__/Notification.test.js +9 -9
- package/src/screens/Notification/components/NotificationItem.js +3 -4
- package/src/screens/Notification/index.js +3 -3
- package/src/screens/Notification/styles/NotificationItemStyles.js +0 -1
- package/src/screens/PlayBackCamera/__test__/index.test.js +1 -1
- package/src/screens/ScanChipQR/components/QRScan/__test__/QRScan.test.js +1 -1
- package/src/screens/ScanChipQR/components/QRScan/index.js +3 -3
- package/src/screens/SelectUnit/__test__/index.test.js +8 -8
- package/src/screens/SelectUnit/index.js +4 -4
- package/src/screens/SharedUnit/TabHeader.js +2 -2
- package/src/screens/Sharing/Components/EndDevice.js +3 -3
- package/src/screens/Sharing/UnitMemberList.js +2 -2
- package/src/screens/Sharing/__test__/UpdateShareDevice.test.js +7 -7
- package/src/screens/SideMenuDetail/__test__/index.test.js +8 -8
- package/src/screens/SmartAccount/Connecting/index.js +5 -5
- package/src/screens/SmartAccount/ListDevice/__test__/ListDevice.test.js +8 -8
- package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js +7 -7
- package/src/screens/SmartAccount/SuccessfullyConnected/index.js +2 -2
- package/src/screens/SmartAccount/__test__/Connecting.test.js +6 -6
- package/src/screens/SmartAccount/__test__/SmartAccount.test.js +10 -10
- package/src/screens/SmartIr/__test__/GroupButtonByType.test.js +3 -2
- package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -2
- package/src/screens/SmartIr/components/SelectBrand.js +2 -2
- package/src/screens/SubUnit/AddSubUnit.js +28 -26
- package/src/screens/SubUnit/AddSubUnitStyles.js +10 -4
- package/src/screens/SubUnit/EditSubUnit.js +12 -11
- package/src/screens/SubUnit/ManageSubUnit.js +3 -3
- package/src/screens/SubUnit/__test__/AddSubUnit.test.js +13 -13
- package/src/screens/SubUnit/__test__/EditSubUnit.test.js +3 -3
- package/src/screens/Template/EditTemplate.js +6 -4
- package/src/screens/Template/__test__/EditTemplate.test.js +7 -7
- package/src/screens/Template/__test__/detail.test.js +4 -4
- package/src/screens/Template/__test__/index.test.js +1 -1
- package/src/screens/UVIndexGuide/index.js +2 -4
- package/src/screens/Unit/Detail.js +1 -5
- package/src/screens/Unit/MoreMenu.js +6 -5
- package/src/screens/Unit/SelectAddToFavorites.js +2 -2
- package/src/screens/Unit/SelectAddress.js +16 -12
- package/src/screens/Unit/Station/__test__/index.test.js +1 -1
- package/src/screens/Unit/__test__/MoreMenu.test.js +5 -1
- package/src/screens/Unit/__test__/SelectAddToFavorites.test.js +9 -9
- package/src/screens/Unit/__test__/SelectAddress.test.js +11 -17
- package/src/screens/Unit/__test__/Summaries.test.js +7 -7
- package/src/screens/Unit/components/AutomateScript/index.js +5 -5
- package/src/screens/Unit/components/ButtonWrapper/index.js +3 -3
- package/src/screens/Unit/components/Header/index.js +2 -2
- package/src/screens/Unit/components/SharedUnit/index.js +5 -5
- package/src/screens/Unit/components/__test__/AutomateScript.test.js +3 -3
- package/src/screens/Unit/components/__test__/SharedUnit.test.js +8 -8
- package/src/screens/Unit/hook/__test__/useUnitConnectRemoteDevices.test.js +2 -2
- package/src/screens/UnitSummary/components/AirQuality/index.js +6 -11
- package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +5 -5
- package/src/screens/UnitSummary/index.js +6 -2
- package/src/utils/Apis/axios.js +5 -5
- package/src/utils/Functions/ShortEmail.js +1 -0
- package/src/utils/I18n/translations/en.js +6 -3
- package/src/utils/I18n/translations/vi.js +8 -4
- package/src/utils/__test__/Utils.test.js +16 -16
- package/src/utils/bluetooth.js +3 -0
- package/assets/images/OneTap.svg +0 -14
- package/assets/images/Schedule.svg +0 -39
- package/assets/images/ValueChange.svg +0 -49
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { act, create } from 'react-test-renderer';
|
|
3
2
|
import { TouchableOpacity } from 'react-native';
|
|
3
|
+
import { act, create } from 'react-test-renderer';
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import { useNavigation } from '@react-navigation/native';
|
|
6
|
+
import MockAdapter from 'axios-mock-adapter';
|
|
7
|
+
import Text from '../../../../commons/Text';
|
|
8
|
+
import { API } from '../../../../configs';
|
|
9
|
+
import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
|
|
6
10
|
import { SCProvider } from '../../../../context';
|
|
7
11
|
import { mockSCStore } from '../../../../context/mockStore';
|
|
8
|
-
import Text from '../../../../commons/Text';
|
|
9
12
|
import api from '../../../../utils/Apis/axios';
|
|
10
|
-
import { API } from '../../../../configs';
|
|
11
13
|
import Routes from '../../../../utils/Route';
|
|
12
|
-
import
|
|
13
|
-
import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
|
|
14
|
-
import { useNavigation } from '@react-navigation/native';
|
|
14
|
+
import ListDevice from '../index';
|
|
15
15
|
|
|
16
16
|
const mock = new MockAdapter(api.axiosInstance);
|
|
17
17
|
|
|
@@ -78,7 +78,7 @@ describe('Test ListDeviceSmartAccount', () => {
|
|
|
78
78
|
await touchs[touchs.length - 1].props.onPress();
|
|
79
79
|
});
|
|
80
80
|
|
|
81
|
-
expect(navigate).
|
|
81
|
+
expect(navigate).toHaveBeenCalledWith(Routes.AddDeviceStack, {
|
|
82
82
|
screen: Routes.AddCommonSelectSubUnit,
|
|
83
83
|
params: {
|
|
84
84
|
addType: 'AddHassiDevice',
|
package/src/screens/SmartAccount/SuccessfullyConnected/__test__/SuccessfullyConnected.test.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import MockAdapter from 'axios-mock-adapter';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import renderer, { act } from 'react-test-renderer';
|
|
3
|
-
import MockAdapter from 'axios-mock-adapter';
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import _TextInput from '../../../../commons/Form/TextInput';
|
|
6
|
+
import { API } from '../../../../configs';
|
|
7
|
+
import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
|
|
6
8
|
import { SCProvider } from '../../../../context';
|
|
7
9
|
import { mockSCStore } from '../../../../context/mockStore';
|
|
8
10
|
import api from '../../../../utils/Apis/axios';
|
|
9
|
-
import { API } from '../../../../configs';
|
|
10
|
-
import AccessibilityLabel from '../../../../configs/AccessibilityLabel';
|
|
11
11
|
import Routes from '../../../../utils/Route';
|
|
12
|
-
import _TextInput from '../../../../commons/Form/TextInput';
|
|
13
12
|
import { flushPromises } from '../../../AllGateway/test-utils';
|
|
13
|
+
import SuccessfullyConnected from '../index';
|
|
14
14
|
|
|
15
15
|
const mock = new MockAdapter(api.axiosInstance);
|
|
16
16
|
|
|
@@ -100,7 +100,7 @@ describe('Test SuccessfullyConnected', () => {
|
|
|
100
100
|
await act(async () => {
|
|
101
101
|
handleContinue.props.onPress();
|
|
102
102
|
});
|
|
103
|
-
expect(global.mockedNavigate).
|
|
103
|
+
expect(global.mockedNavigate).toHaveBeenCalledWith(
|
|
104
104
|
Routes.ListDeviceSmartAccount,
|
|
105
105
|
{
|
|
106
106
|
smart_account_id: 1,
|
|
@@ -125,7 +125,7 @@ describe('Test SuccessfullyConnected', () => {
|
|
|
125
125
|
await act(async () => {
|
|
126
126
|
handleFinish.props.onPress();
|
|
127
127
|
});
|
|
128
|
-
expect(global.mockedDispatch).
|
|
128
|
+
expect(global.mockedDispatch).toHaveBeenCalledWith({
|
|
129
129
|
payload: {
|
|
130
130
|
index: 0,
|
|
131
131
|
routes: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { memo, useCallback, useEffect, useState } from 'react';
|
|
2
2
|
import { View, ScrollView, ActivityIndicator } from 'react-native';
|
|
3
3
|
import { useNavigation, CommonActions } from '@react-navigation/native';
|
|
4
|
-
import
|
|
4
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
5
5
|
|
|
6
6
|
import _TextInput from '../../../commons/Form/TextInput';
|
|
7
7
|
import Text from '../../../commons/Text';
|
|
@@ -134,7 +134,7 @@ const SuccessfullyConnected = memo(({ route }) => {
|
|
|
134
134
|
<View style={styles.wrap}>
|
|
135
135
|
<ScrollView>
|
|
136
136
|
<View style={styles.body}>
|
|
137
|
-
<
|
|
137
|
+
<IconOutline name="check-circle" size={28} color={Colors.Green6} />
|
|
138
138
|
<Text bold style={styles.connectingText}>
|
|
139
139
|
{t('successfully_connected')}
|
|
140
140
|
</Text>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import MockAdapter from 'axios-mock-adapter';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import renderer, { act } from 'react-test-renderer';
|
|
4
|
+
import Text from '../../../commons/Text';
|
|
5
|
+
import { API } from '../../../configs';
|
|
3
6
|
import { SCProvider } from '../../../context';
|
|
4
7
|
import { mockSCStore } from '../../../context/mockStore';
|
|
5
|
-
import
|
|
6
|
-
import Text from '../../../commons/Text';
|
|
7
|
-
import MockAdapter from 'axios-mock-adapter';
|
|
8
|
+
import t from '../../../hooks/Common/useTranslations';
|
|
8
9
|
import api from '../../../utils/Apis/axios';
|
|
9
|
-
import { API } from '../../../configs';
|
|
10
10
|
import Routes from '../../../utils/Route';
|
|
11
|
-
import
|
|
11
|
+
import SmartAccountConnecting from '../Connecting';
|
|
12
12
|
|
|
13
13
|
const mock = new MockAdapter(api.axiosInstance);
|
|
14
14
|
|
|
@@ -53,7 +53,7 @@ describe('Test Connecting', () => {
|
|
|
53
53
|
await act(async () => {
|
|
54
54
|
tree = await renderer.create(wrapComponent(route));
|
|
55
55
|
});
|
|
56
|
-
expect(global.mockedNavigate).
|
|
56
|
+
expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.SmartAccount, {
|
|
57
57
|
params: {},
|
|
58
58
|
});
|
|
59
59
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import renderer, { act } from 'react-test-renderer';
|
|
3
|
-
import Toast from 'react-native-toast-message';
|
|
4
2
|
import { ScrollView, TouchableOpacity } from 'react-native';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import SmartAccount from '../index';
|
|
8
|
-
import AccessibilityLabel from '../../../configs/AccessibilityLabel';
|
|
3
|
+
import Toast from 'react-native-toast-message';
|
|
4
|
+
import renderer, { act } from 'react-test-renderer';
|
|
9
5
|
import TextInput from '../../../commons/Form/TextInput';
|
|
10
6
|
import _TextInputPassword from '../../../commons/Form/TextInputPassword';
|
|
7
|
+
import AccessibilityLabel from '../../../configs/AccessibilityLabel';
|
|
8
|
+
import { SCProvider } from '../../../context';
|
|
9
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
11
10
|
import Routes from '../../../utils/Route';
|
|
11
|
+
import SmartAccount from '../index';
|
|
12
12
|
|
|
13
13
|
const wrapComponent = (route) => (
|
|
14
14
|
<SCProvider initState={mockSCStore({})}>
|
|
@@ -98,7 +98,7 @@ describe('Test SmartAccount', () => {
|
|
|
98
98
|
await act(async () => {
|
|
99
99
|
await touchableOpacity.props.onPress();
|
|
100
100
|
});
|
|
101
|
-
expect(Toast.show).
|
|
101
|
+
expect(Toast.show).toHaveBeenCalledWith({
|
|
102
102
|
type: 'error',
|
|
103
103
|
position: 'bottom',
|
|
104
104
|
text1: 'Please select a supplier',
|
|
@@ -152,7 +152,7 @@ describe('Test SmartAccount', () => {
|
|
|
152
152
|
await act(async () => {
|
|
153
153
|
await touchableOpacity.props.onPress();
|
|
154
154
|
});
|
|
155
|
-
expect(global.mockedNavigate).
|
|
155
|
+
expect(global.mockedNavigate).toHaveBeenCalledWith(
|
|
156
156
|
Routes.SmartAccountConnecting,
|
|
157
157
|
{
|
|
158
158
|
brand: 'google_home',
|
|
@@ -206,7 +206,7 @@ describe('Test SmartAccount', () => {
|
|
|
206
206
|
await act(async () => {
|
|
207
207
|
await touchableOpacity.props.onPress();
|
|
208
208
|
});
|
|
209
|
-
expect(global.mockedNavigate).
|
|
209
|
+
expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.AddDeviceStack, {
|
|
210
210
|
screen: 'AddCommonSelectUnit',
|
|
211
211
|
params: {
|
|
212
212
|
addType: 'AddHassioDevice',
|
|
@@ -236,7 +236,7 @@ describe('Test SmartAccount', () => {
|
|
|
236
236
|
await touchSupplierItem[1].props.onPress();
|
|
237
237
|
});
|
|
238
238
|
expect(touchSupplierItem).toBeDefined();
|
|
239
|
-
expect(global.mockedNavigate).
|
|
239
|
+
expect(global.mockedNavigate).toHaveBeenCalledWith(Routes.Browser, {
|
|
240
240
|
// eslint-disable-next-line max-len
|
|
241
241
|
link: 'https://qt-vn.m.lgaccount.com/emp/v2/authorize?client_id=2b85aee334f046848341547894bb7c4e&redirect_uri=app://eoh/sync-lg-device&response_type=code&state=1',
|
|
242
242
|
});
|
|
@@ -9,8 +9,9 @@ import { AccessibilityLabel } from '../../../configs/Constants';
|
|
|
9
9
|
import TextInput from '../../../commons/Form/TextInput';
|
|
10
10
|
import { ModalCustom } from '../../../commons/Modal';
|
|
11
11
|
import { TouchableOpacity } from 'react-native';
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
|
|
14
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
14
15
|
|
|
15
16
|
const wrapComponent = (route) => (
|
|
16
17
|
<SCProvider initState={mockSCStore({})}>
|
|
@@ -133,7 +134,7 @@ describe('Test GroupButtonByType', () => {
|
|
|
133
134
|
const icon = instance.find(
|
|
134
135
|
(el) =>
|
|
135
136
|
el.props.accessibilityLabel ===
|
|
136
|
-
AccessibilityLabel.ICON_OUTLINE_TYPE_RELOAD && el.type ===
|
|
137
|
+
AccessibilityLabel.ICON_OUTLINE_TYPE_RELOAD && el.type === IconOutline
|
|
137
138
|
);
|
|
138
139
|
await act(async () => {
|
|
139
140
|
await touch.props.onPress();
|
|
@@ -5,7 +5,7 @@ import { useTranslations } from '../../../../hooks/Common/useTranslations';
|
|
|
5
5
|
import SmartTiviActionTemplate from '../../../../commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate';
|
|
6
6
|
import Text from '../../../../commons/Text';
|
|
7
7
|
import { ModalCustom } from '../../../../commons/Modal';
|
|
8
|
-
import
|
|
8
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
9
9
|
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
|
|
10
10
|
import { Colors } from '../../../../configs';
|
|
11
11
|
import TextInput from '../../../../commons/Form/TextInput';
|
|
@@ -58,7 +58,7 @@ const GroupButtonByType = memo(({ route }) => {
|
|
|
58
58
|
style={[styles.headerButton]}
|
|
59
59
|
accessibilityLabel={AccessibilityLabel.HEADER_BUTTON_TYPE_RELOAD}
|
|
60
60
|
>
|
|
61
|
-
<
|
|
61
|
+
<IconOutline
|
|
62
62
|
name={'reload1'}
|
|
63
63
|
size={27}
|
|
64
64
|
color={Colors.Black}
|
|
@@ -5,7 +5,7 @@ import { HeaderCustom } from '../../../commons/Header';
|
|
|
5
5
|
import { useTranslations } from '../../../hooks/Common/useTranslations';
|
|
6
6
|
import Routes from '../../../utils/Route';
|
|
7
7
|
import { RowItem } from '../../../commons/RowItem';
|
|
8
|
-
import
|
|
8
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
9
9
|
import { Colors } from '../../../configs';
|
|
10
10
|
|
|
11
11
|
import styles from './SelectBrandStyles';
|
|
@@ -47,7 +47,7 @@ const SelectDeviceType = memo(({ route }) => {
|
|
|
47
47
|
key={index.toString()}
|
|
48
48
|
isShowSubText={false}
|
|
49
49
|
rightComponent={
|
|
50
|
-
<
|
|
50
|
+
<IconOutline name="right" size={20} color={Colors.Gray7} />
|
|
51
51
|
}
|
|
52
52
|
/>
|
|
53
53
|
);
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
+
import { useNavigation } from '@react-navigation/native';
|
|
1
2
|
import React, {
|
|
2
|
-
useState,
|
|
3
3
|
useCallback,
|
|
4
|
-
useMemo,
|
|
5
4
|
useEffect,
|
|
5
|
+
useMemo,
|
|
6
6
|
useRef,
|
|
7
|
+
useState,
|
|
7
8
|
} from 'react';
|
|
8
|
-
import {
|
|
9
|
-
import { useNavigation } from '@react-navigation/native';
|
|
9
|
+
import { Image, Keyboard, TouchableWithoutFeedback, View } from 'react-native';
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
import { API, Colors } from '../../configs';
|
|
13
|
-
import { ViewButtonBottom, ImagePicker } from '../../commons';
|
|
14
|
-
import Text from '../../commons/Text';
|
|
11
|
+
import { ImagePicker, ViewButtonBottom } from '../../commons';
|
|
15
12
|
import _TextInput from '../../commons/Form/TextInput';
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import { ToastBottomHelper } from '../../utils/Utils';
|
|
13
|
+
import Text from '../../commons/Text';
|
|
14
|
+
import { API, Colors } from '../../configs';
|
|
19
15
|
import { AccessibilityLabel } from '../../configs/Constants';
|
|
20
|
-
import
|
|
16
|
+
import { useSCContextSelector } from '../../context';
|
|
21
17
|
import useKeyboardShow from '../../hooks/Common/useKeyboardShow';
|
|
18
|
+
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
22
19
|
import { replace } from '../../navigations/utils';
|
|
20
|
+
import { axiosPost, createFormData } from '../../utils/Apis/axios';
|
|
23
21
|
import { useBackendPermission } from '../../utils/Permission/backend';
|
|
24
|
-
import
|
|
22
|
+
import Routes from '../../utils/Route';
|
|
23
|
+
import { ToastBottomHelper } from '../../utils/Utils';
|
|
24
|
+
import styles from './AddSubUnitStyles';
|
|
25
|
+
import LocationPin from '../../../assets/images/Map/LocationPin.svg';
|
|
25
26
|
|
|
26
27
|
const AddSubUnit = ({ route }) => {
|
|
27
28
|
const t = useTranslations();
|
|
@@ -85,7 +86,6 @@ const AddSubUnit = ({ route }) => {
|
|
|
85
86
|
cleanData();
|
|
86
87
|
} else {
|
|
87
88
|
awaitCreate.current = false;
|
|
88
|
-
ToastBottomHelper.error(t('text_create_unit_fail'));
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
} else {
|
|
@@ -120,9 +120,7 @@ const AddSubUnit = ({ route }) => {
|
|
|
120
120
|
routeName: Routes.DashboardStack,
|
|
121
121
|
};
|
|
122
122
|
if (isInsideUnit) {
|
|
123
|
-
navigate(Routes.UnitDetail,
|
|
124
|
-
params: commonPrams,
|
|
125
|
-
});
|
|
123
|
+
navigate(Routes.UnitDetail, commonPrams);
|
|
126
124
|
} else {
|
|
127
125
|
dispatch(
|
|
128
126
|
replace(Routes.UnitStack, {
|
|
@@ -228,15 +226,19 @@ const AddSubUnit = ({ route }) => {
|
|
|
228
226
|
}
|
|
229
227
|
onPress={onChooseLocation}
|
|
230
228
|
>
|
|
231
|
-
<View style={styles.
|
|
232
|
-
<Text style={styles.addWallpaper}>{t('
|
|
233
|
-
<
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
229
|
+
<View style={styles.wrapLocation}>
|
|
230
|
+
<Text style={styles.addWallpaper}>{t('location')}</Text>
|
|
231
|
+
<View style={styles.wrapTextLocation}>
|
|
232
|
+
<LocationPin />
|
|
233
|
+
<Text
|
|
234
|
+
style={styles.textLocation}
|
|
235
|
+
color={
|
|
236
|
+
location.description ? Colors.Primary : Colors.Gray7
|
|
237
|
+
}
|
|
238
|
+
>
|
|
239
|
+
{location.description || t('text_explain_add_location')}
|
|
240
|
+
</Text>
|
|
241
|
+
</View>
|
|
240
242
|
</View>
|
|
241
243
|
</TouchableWithoutFeedback>
|
|
242
244
|
)}
|
|
@@ -63,14 +63,20 @@ export default StyleSheet.create({
|
|
|
63
63
|
marginRight: 8,
|
|
64
64
|
backgroundColor: Colors.Pink1,
|
|
65
65
|
},
|
|
66
|
-
|
|
66
|
+
wrapLocation: {
|
|
67
67
|
marginTop: 6,
|
|
68
68
|
borderBottomWidth: 1,
|
|
69
|
+
paddingBottom: 10,
|
|
69
70
|
borderColor: Colors.Gray4,
|
|
70
71
|
},
|
|
72
|
+
wrapTextLocation: {
|
|
73
|
+
flexDirection: 'row',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
},
|
|
71
76
|
textLocation: {
|
|
72
|
-
fontSize:
|
|
73
|
-
lineHeight:
|
|
74
|
-
|
|
77
|
+
fontSize: 12,
|
|
78
|
+
lineHeight: 20,
|
|
79
|
+
width: 320,
|
|
80
|
+
marginLeft: 6,
|
|
75
81
|
},
|
|
76
82
|
});
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import React, { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
import { View, TouchableOpacity, Image } from 'react-native';
|
|
3
1
|
import { useIsFocused, useNavigation } from '@react-navigation/native';
|
|
2
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
3
|
+
import { Image, TouchableOpacity, View } from 'react-native';
|
|
4
4
|
import { useTranslations } from '../../hooks/Common/useTranslations';
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
6
|
+
import { API, Colors } from '../../configs';
|
|
7
|
+
import useBoolean from '../../hooks/Common/useBoolean';
|
|
8
8
|
import {
|
|
9
|
-
axiosPatch,
|
|
10
9
|
axiosDelete,
|
|
10
|
+
axiosPatch,
|
|
11
11
|
createFormData,
|
|
12
12
|
} from '../../utils/Apis/axios';
|
|
13
13
|
import Routes from '../../utils/Route';
|
|
14
|
-
import
|
|
14
|
+
import { ToastBottomHelper } from '../../utils/Utils';
|
|
15
15
|
|
|
16
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
16
17
|
import { ImagePicker, Section } from '../../commons';
|
|
17
18
|
import AlertAction from '../../commons/AlertAction';
|
|
18
19
|
import _TextInput from '../../commons/Form/TextInput';
|
|
19
20
|
import Text from '../../commons/Text';
|
|
20
21
|
import { AccessibilityLabel } from '../../configs/Constants';
|
|
21
|
-
import AntDesign from 'react-native-vector-icons/AntDesign';
|
|
22
|
-
import { useEmeragencyContacts } from './hooks/useEmergencyContacts';
|
|
23
22
|
import useKeyboardAnimated from '../../hooks/Explore/useKeyboardAnimated';
|
|
24
23
|
import styles from './EditSubUnitStyles';
|
|
24
|
+
import { useEmeragencyContacts } from './hooks/useEmergencyContacts';
|
|
25
25
|
|
|
26
26
|
const EditSubUnit = ({ route }) => {
|
|
27
27
|
const { unit, station } = route?.params || {};
|
|
@@ -52,7 +52,7 @@ const EditSubUnit = ({ route }) => {
|
|
|
52
52
|
}, [getListContacts, group, isFocused]);
|
|
53
53
|
|
|
54
54
|
const onBack = useCallback(() => {
|
|
55
|
-
const { routes } = navigation.
|
|
55
|
+
const { routes } = navigation.getState();
|
|
56
56
|
const calledByRoute = routes[routes.length - 3].name;
|
|
57
57
|
|
|
58
58
|
switch (calledByRoute) {
|
|
@@ -63,9 +63,10 @@ const EditSubUnit = ({ route }) => {
|
|
|
63
63
|
navigation.navigate(Routes.UnitDetail, {
|
|
64
64
|
isEditSubUnit: true,
|
|
65
65
|
isAddSubUnit: false,
|
|
66
|
+
unitId: unit?.id,
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
|
-
}, [navigation]);
|
|
69
|
+
}, [navigation, unit?.id]);
|
|
69
70
|
|
|
70
71
|
const updateSubUnit = useCallback(
|
|
71
72
|
async (params, headers) => {
|
|
@@ -207,7 +208,7 @@ const EditSubUnit = ({ route }) => {
|
|
|
207
208
|
<Text type={'H4'} color={Colors.Gray9}>
|
|
208
209
|
{t('emergency_contacts')}
|
|
209
210
|
</Text>
|
|
210
|
-
<
|
|
211
|
+
<IconOutline name={'right'} size={20} color={Colors.Gray8} />
|
|
211
212
|
</TouchableOpacity>
|
|
212
213
|
<Text
|
|
213
214
|
type={'Body'}
|
|
@@ -14,7 +14,7 @@ import WrapHeaderScrollable from '../../commons/Sharing/WrapHeaderScrollable';
|
|
|
14
14
|
import Text from '../../commons/Text';
|
|
15
15
|
|
|
16
16
|
import styles from './ManageSubUnitStyles';
|
|
17
|
-
import
|
|
17
|
+
import { IconOutline } from '@ant-design/icons-react-native';
|
|
18
18
|
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
|
|
19
19
|
import Routes from '../../utils/Route';
|
|
20
20
|
import { RowItem } from '../../commons/RowItem';
|
|
@@ -54,7 +54,7 @@ const ManageSubUnit = ({ route }) => {
|
|
|
54
54
|
onPress={addSubUnit}
|
|
55
55
|
style={styles.headerButton}
|
|
56
56
|
>
|
|
57
|
-
<
|
|
57
|
+
<IconOutline name={'plus'} size={27} color={Colors.Black} />
|
|
58
58
|
</TouchableOpacity>
|
|
59
59
|
<TouchableOpacity
|
|
60
60
|
// onPress={handleShowMenuAction}
|
|
@@ -112,7 +112,7 @@ const ManageSubUnit = ({ route }) => {
|
|
|
112
112
|
} devices`}
|
|
113
113
|
onPress={() => goToEditSubUnit(item, unit)}
|
|
114
114
|
rightComponent={
|
|
115
|
-
<
|
|
115
|
+
<IconOutline
|
|
116
116
|
name="right"
|
|
117
117
|
size={20}
|
|
118
118
|
color={Colors.Gray6}
|
|
@@ -212,7 +212,9 @@ describe('Test AddSubUnit', () => {
|
|
|
212
212
|
},
|
|
213
213
|
isAddUnit: true,
|
|
214
214
|
};
|
|
215
|
-
mock.onPost(API.UNIT.CREATE_UNIT()).reply(400
|
|
215
|
+
mock.onPost(API.UNIT.CREATE_UNIT()).reply(400, {
|
|
216
|
+
non_field_errors: 'You have reached max units',
|
|
217
|
+
});
|
|
216
218
|
await act(async () => {
|
|
217
219
|
tree = await create(wrapComponent(route));
|
|
218
220
|
});
|
|
@@ -224,7 +226,7 @@ describe('Test AddSubUnit', () => {
|
|
|
224
226
|
expect(Toast.show).toHaveBeenCalledWith({
|
|
225
227
|
type: 'error',
|
|
226
228
|
position: 'bottom',
|
|
227
|
-
text1:
|
|
229
|
+
text1: 'You have reached max units',
|
|
228
230
|
visibilityTime: 1000,
|
|
229
231
|
});
|
|
230
232
|
});
|
|
@@ -244,19 +246,17 @@ describe('Test AddSubUnit', () => {
|
|
|
244
246
|
await viewButtonBottom.props.onRightClick();
|
|
245
247
|
});
|
|
246
248
|
expect(global.mockedNavigate).toHaveBeenCalledWith('UnitDetail', {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
description: 'location',
|
|
256
|
-
},
|
|
249
|
+
isAddSubUnit: true,
|
|
250
|
+
routeName: 'DashboardStack',
|
|
251
|
+
stationId: undefined,
|
|
252
|
+
unitData: {
|
|
253
|
+
id: 1,
|
|
254
|
+
name: 'Unit name',
|
|
255
|
+
location: {
|
|
256
|
+
description: 'location',
|
|
257
257
|
},
|
|
258
|
-
unitId: 1,
|
|
259
258
|
},
|
|
259
|
+
unitId: 1,
|
|
260
260
|
});
|
|
261
261
|
});
|
|
262
262
|
|
|
@@ -70,7 +70,7 @@ describe('Test EditSubUnit', () => {
|
|
|
70
70
|
it('alertAction rightButtonClick success, previous screen Routes.UnitDetail', async () => {
|
|
71
71
|
mock.onDelete(API.SUB_UNIT.REMOVE_SUB_UNIT(1, 2)).reply(200);
|
|
72
72
|
|
|
73
|
-
global.
|
|
73
|
+
global.mockedGetState.mockImplementation(() => ({
|
|
74
74
|
routes: [
|
|
75
75
|
{ name: Routes.UnitDetail },
|
|
76
76
|
{ name: 'route 2' },
|
|
@@ -98,7 +98,7 @@ describe('Test EditSubUnit', () => {
|
|
|
98
98
|
|
|
99
99
|
it('alertAction rightButtonClick success', async () => {
|
|
100
100
|
mock.onDelete(API.SUB_UNIT.REMOVE_SUB_UNIT(1, 2)).reply(200);
|
|
101
|
-
global.
|
|
101
|
+
global.mockedGetState.mockImplementation(() => ({
|
|
102
102
|
routes: [
|
|
103
103
|
{ name: 'UnitDetail' },
|
|
104
104
|
{ name: 'route 2' },
|
|
@@ -122,7 +122,7 @@ describe('Test EditSubUnit', () => {
|
|
|
122
122
|
.onDelete('https://backend.eoh.io/api/property_manager/1/sub_units/2/')
|
|
123
123
|
.reply(400);
|
|
124
124
|
|
|
125
|
-
global.
|
|
125
|
+
global.mockedGetState.mockImplementation(() => ({
|
|
126
126
|
routes: [{ name: 'route 1' }, { name: 'route 2' }, { name: 'route 3' }],
|
|
127
127
|
}));
|
|
128
128
|
|
|
@@ -9,6 +9,7 @@ import React, {
|
|
|
9
9
|
import { Image, TouchableOpacity, View } from 'react-native';
|
|
10
10
|
import DraggableFlatList from 'react-native-draggable-flatlist';
|
|
11
11
|
|
|
12
|
+
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
12
13
|
import { EmptyComponent } from '../../commons/DevMode';
|
|
13
14
|
import { HeaderCustom } from '../../commons/Header';
|
|
14
15
|
import Text from '../../commons/Text';
|
|
@@ -16,9 +17,9 @@ import { Images } from '../../configs';
|
|
|
16
17
|
import { SCContext } from '../../context';
|
|
17
18
|
import { Action } from '../../context/actionType';
|
|
18
19
|
import t from '../../hooks/Common/useTranslations';
|
|
20
|
+
import { notImplemented } from '../../utils/Utils';
|
|
19
21
|
import { SensorDisplayItem } from '../Device/components/SensorDisplayItem';
|
|
20
22
|
import styles from './Styles/EditTemplateStyle';
|
|
21
|
-
import { notImplemented } from '../../utils/Utils';
|
|
22
23
|
|
|
23
24
|
const EditTemplate = () => {
|
|
24
25
|
const { setAction } = useContext(SCContext);
|
|
@@ -100,7 +101,7 @@ const EditTemplate = () => {
|
|
|
100
101
|
{!actionsList?.length ? (
|
|
101
102
|
renderEmpty
|
|
102
103
|
) : (
|
|
103
|
-
|
|
104
|
+
<GestureHandlerRootView>
|
|
104
105
|
<View style={styles.wrapDescription}>
|
|
105
106
|
<Text style={styles.description}>
|
|
106
107
|
{t('hold_and_hover_description')}
|
|
@@ -109,7 +110,8 @@ const EditTemplate = () => {
|
|
|
109
110
|
<DraggableFlatList
|
|
110
111
|
showsVerticalScrollIndicator={false}
|
|
111
112
|
data={actionsList}
|
|
112
|
-
renderItem={({ item,
|
|
113
|
+
renderItem={({ item, getIndex, drag }) => {
|
|
114
|
+
const index = getIndex();
|
|
113
115
|
return (
|
|
114
116
|
<TouchableOpacity
|
|
115
117
|
onLongPress={onDrag(item, drag)}
|
|
@@ -153,7 +155,7 @@ const EditTemplate = () => {
|
|
|
153
155
|
<Text style={styles.save}>{t('save')}</Text>
|
|
154
156
|
</TouchableOpacity>
|
|
155
157
|
</View>
|
|
156
|
-
|
|
158
|
+
</GestureHandlerRootView>
|
|
157
159
|
)}
|
|
158
160
|
</View>
|
|
159
161
|
);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { act, create } from 'react-test-renderer';
|
|
3
2
|
import DraggableFlatList from 'react-native-draggable-flatlist';
|
|
3
|
+
import { act, create } from 'react-test-renderer';
|
|
4
4
|
|
|
5
|
+
import { useRoute } from '@react-navigation/native';
|
|
6
|
+
import { TouchableOpacity } from 'react-native';
|
|
7
|
+
import Text from '../../../commons/Text';
|
|
5
8
|
import { SCProvider } from '../../../context';
|
|
6
9
|
import { mockSCStore } from '../../../context/mockStore';
|
|
7
|
-
import EditTemplate from '../EditTemplate';
|
|
8
|
-
import Text from '../../../commons/Text';
|
|
9
|
-
import { useRoute } from '@react-navigation/native';
|
|
10
10
|
import { getTranslate } from '../../../utils/I18n';
|
|
11
|
-
import
|
|
11
|
+
import EditTemplate from '../EditTemplate';
|
|
12
12
|
|
|
13
13
|
const wrapComponent = () => (
|
|
14
14
|
<SCProvider initState={mockSCStore({})}>
|
|
@@ -67,7 +67,7 @@ describe('Test EditTemplate', () => {
|
|
|
67
67
|
await firstItem.props.onLongPress();
|
|
68
68
|
});
|
|
69
69
|
|
|
70
|
-
expect(global.mockedGoBack).
|
|
70
|
+
expect(global.mockedGoBack).toHaveBeenCalled();
|
|
71
71
|
|
|
72
72
|
await act(async () => {
|
|
73
73
|
await DraggableFlatLists[0].props.onDragEnd({
|
|
@@ -79,6 +79,6 @@ describe('Test EditTemplate', () => {
|
|
|
79
79
|
.findByProps({ accessibilityLabel: 'Save' })
|
|
80
80
|
.props.onPress();
|
|
81
81
|
});
|
|
82
|
-
expect(global.mockedGoBack).
|
|
82
|
+
expect(global.mockedGoBack).toHaveBeenCalled();
|
|
83
83
|
});
|
|
84
84
|
});
|
|
@@ -4,13 +4,13 @@ import React from 'react';
|
|
|
4
4
|
import { TouchableOpacity } from 'react-native';
|
|
5
5
|
import { act, create } from 'react-test-renderer';
|
|
6
6
|
|
|
7
|
+
import MenuActionMore from '../../../commons/MenuActionMore';
|
|
8
|
+
import ModalPopupCT from '../../../commons/ModalPopupCT';
|
|
7
9
|
import { API } from '../../../configs';
|
|
8
10
|
import { SCProvider } from '../../../context';
|
|
9
11
|
import { mockSCStore } from '../../../context/mockStore';
|
|
10
12
|
import api from '../../../utils/Apis/axios';
|
|
11
13
|
import Detail from '../detail';
|
|
12
|
-
import ModalPopupCT from '../../../commons/ModalPopupCT';
|
|
13
|
-
import MenuActionMore from '../../../commons/MenuActionMore';
|
|
14
14
|
|
|
15
15
|
const mock = new MockAdapter(api.axiosInstance);
|
|
16
16
|
|
|
@@ -59,7 +59,7 @@ describe('Test Detail', () => {
|
|
|
59
59
|
const instance = tree.root;
|
|
60
60
|
const touchableOpacities = instance.findAllByType(TouchableOpacity);
|
|
61
61
|
await touchableOpacities[0].props.onPress();
|
|
62
|
-
expect(global.mockedGoBack).
|
|
62
|
+
expect(global.mockedGoBack).toHaveBeenCalled();
|
|
63
63
|
});
|
|
64
64
|
|
|
65
65
|
it('Test render onClick more header onPress delete', async () => {
|
|
@@ -95,7 +95,7 @@ describe('Test Detail', () => {
|
|
|
95
95
|
await act(async () => {
|
|
96
96
|
await menuActionMore.props.onItemClick(item);
|
|
97
97
|
});
|
|
98
|
-
expect(mockDoAction).
|
|
98
|
+
expect(mockDoAction).toHaveBeenCalled();
|
|
99
99
|
const modalPopupCT = instance.findByType(ModalPopupCT);
|
|
100
100
|
mock.onGet(API.DEV_MODE.DASHBOARD.DETAIL(1)).reply(200);
|
|
101
101
|
await act(async () => {
|
|
@@ -27,7 +27,7 @@ describe('Test Template screen', () => {
|
|
|
27
27
|
expect(FlatLists).toHaveLength(1);
|
|
28
28
|
const touchableOpacities = instance.findAllByType(TouchableOpacity);
|
|
29
29
|
await touchableOpacities[0].props.onPress();
|
|
30
|
-
expect(global.mockedNavigate).
|
|
30
|
+
expect(global.mockedNavigate).toHaveBeenCalled();
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
it('Test onSearch', async () => {
|