@eohjsc/react-native-smart-city 0.7.3-rc1 → 0.7.3-rc3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eohjsc/react-native-smart-city",
3
3
  "title": "React Native Smart Home",
4
- "version": "0.7.3-rc1",
4
+ "version": "0.7.3-rc3",
5
5
  "description": "TODO",
6
6
  "main": "index.js",
7
7
  "files": [
@@ -52,9 +52,6 @@
52
52
  "publishConfig": {
53
53
  "registry": "https://registry.npmjs.org/"
54
54
  },
55
- "resolutions": {
56
- "graceful-fs": "^4.2.4"
57
- },
58
55
  "keywords": [
59
56
  "react-native"
60
57
  ],
@@ -64,7 +61,10 @@
64
61
  "dependencies": {
65
62
  "@babel/core": "^7.12.9",
66
63
  "@babel/helper-environment-visitor": "^7.16.7",
67
- "@babel/runtime": "^7.12.5",
64
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
65
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
66
+ "@babel/plugin-transform-private-methods": "^7.24.7",
67
+ "@babel/runtime": "^7.20.0",
68
68
  "@eohjsc/react-native-keyboard-aware-scroll-view": "^0.9.5",
69
69
  "@formatjs/intl-getcanonicallocales": "^1.4.5",
70
70
  "@formatjs/intl-numberformat": "^5.6.2",
@@ -88,14 +88,14 @@
88
88
  "@react-navigation/native-stack": "^6.11.0",
89
89
  "@sentry/react-native": "^5.24.1",
90
90
  "@testing-library/react-hooks": "^6.0.0",
91
- "@types/jest": "^26.0.19",
91
+ "@types/jest": "^29.2.1",
92
92
  "@types/react": "^17.0.0",
93
93
  "@types/react-native": "^0.63.43",
94
94
  "@types/react-test-renderer": "^17.0.0",
95
95
  "apisauce": "^2.1.5",
96
96
  "axios": "^0.19.2",
97
97
  "axios-mock-adapter": "^1.21.1",
98
- "babel-jest": "^26.6.3",
98
+ "babel-jest": "^29.7.0",
99
99
  "base-64": "^1.0.0",
100
100
  "deprecated-react-native-prop-types": "^2.3.0",
101
101
  "detox": "^18.3.1",
@@ -110,13 +110,14 @@
110
110
  "husky": "^8.0.1",
111
111
  "i18n-js": "^3.7.1",
112
112
  "i18next": "^20.1.0",
113
- "jest": "^26.6.3",
114
- "jest-circus": "^26.6.3",
113
+ "jest": "^29",
114
+ "jest-circus": "^29",
115
+ "jest-environment-jsdom": "^29",
115
116
  "jetifier": "^1.6.6",
116
117
  "lint-staged": "^12.4.1",
117
118
  "lodash": "^4.17.19",
118
119
  "lottie-react-native": "^6.7.2",
119
- "metro-react-native-babel-preset": "^0.66.2",
120
+ "metro-react-native-babel-preset": "0.73.9",
120
121
  "moment": "^2.27.0",
121
122
  "moment-timezone": "^0.5.32",
122
123
  "node-html-parser": "^2.0.2",
@@ -134,7 +135,7 @@
134
135
  "react-dom": "18.2.0",
135
136
  "react-hooks-global-state": "^2.1.0",
136
137
  "react-i18next": "^11.8.12",
137
- "react-native": "0.71.19",
138
+ "react-native": "0.73.9",
138
139
  "react-native-alert-async": "^1.0.5",
139
140
  "react-native-android-location-enabler": "^1.2.2",
140
141
  "react-native-base64": "^0.1.0",
@@ -185,7 +186,7 @@
185
186
  "react-native-wheel-color-picker": "^1.2.0",
186
187
  "react-native-wheel-scrollview-picker": "^1.2.2",
187
188
  "react-native-wifi-reborn": "4.5.0",
188
- "react-test-renderer": "18.2.0",
189
+ "react-test-renderer": "18.3.1",
189
190
  "string-format": "^2.0.0",
190
191
  "sync-directory": "^5.1.7",
191
192
  "timezone-mock": "^1.1.3",
@@ -1,21 +1,21 @@
1
1
  import React from 'react';
2
2
  import {
3
- TouchableOpacity,
4
- Switch,
5
3
  ActivityIndicator,
6
4
  ScrollView,
5
+ Switch,
6
+ TouchableOpacity,
7
7
  } from 'react-native';
8
- import renderer, { act } from 'react-test-renderer';
9
8
  import DateTimePickerModal from 'react-native-modal-datetime-picker';
9
+ import renderer, { act } from 'react-test-renderer';
10
10
 
11
+ import { Slider } from '@miblanchard/react-native-slider';
11
12
  import ActionGroup from '..';
12
- import Text from '../../Text';
13
13
  import { AccessibilityLabel, BUTTON_TYPE } from '../../../configs/Constants';
14
14
  import { SCProvider } from '../../../context';
15
15
  import { mockSCStore } from '../../../context/mockStore';
16
- import { Slider } from '@miblanchard/react-native-slider';
17
- import { WheelColorPicker } from '../ColorPickerTemplate';
18
16
  import RadioCircle from '../../RadioCircle';
17
+ import Text from '../../Text';
18
+ import { WheelColorPicker } from '../ColorPickerTemplate';
19
19
  import SwitchButtonTemplate from '../OnOffTemplate/SwitchButtonTemplate';
20
20
 
21
21
  const wrapComponent = (item, mockDoAction, sensor) => (
@@ -413,7 +413,7 @@ describe('Test ActionGroup', () => {
413
413
  config: 5,
414
414
  is_on_value: 0,
415
415
  action: 'action1-47b3-43f6-ba45-83cd1cf5d8f2',
416
- icon: 'up-circle',
416
+ icon: 'upcircle',
417
417
  text: 'Text',
418
418
  action_data: actionData,
419
419
  },
@@ -421,7 +421,7 @@ describe('Test ActionGroup', () => {
421
421
  config: 6,
422
422
  is_on_value: 0,
423
423
  action: 'action2-47b3-43f6-ba45-83cd1cf5d8f2',
424
- icon: 'up-circle',
424
+ icon: 'upcircle',
425
425
  text: 'Text',
426
426
  action_data: actionData,
427
427
  },
@@ -1,15 +1,15 @@
1
1
  import React, { memo, useCallback, useState } from 'react';
2
- import { View, StyleSheet, TouchableOpacity } from 'react-native';
3
- import QualityIndicatorItem from './WaterQualitySensor/QualityIndicatorsItem';
4
- import AlertStatusMachine from './WaterPurifierStatus/AlertStatusMachine';
5
- import { useBoolean } from '../../hooks/Common';
6
- import Text from '../Text';
7
- import Routes from '../../utils/Route';
2
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
8
3
  import AntDesign from 'react-native-vector-icons/AntDesign';
9
4
  import { Colors, Constants } from '../../configs';
10
- import { useTranslations } from '../../hooks/Common/useTranslations';
11
5
  import { AccessibilityLabel } from '../../configs/Constants';
6
+ import { useBoolean } from '../../hooks/Common';
7
+ import { useTranslations } from '../../hooks/Common/useTranslations';
8
+ import Routes from '../../utils/Route';
12
9
  import { ModalCustom } from '../Modal';
10
+ import Text from '../Text';
11
+ import AlertStatusMachine from './WaterPurifierStatus/AlertStatusMachine';
12
+ import QualityIndicatorItem from './WaterQualitySensor/QualityIndicatorsItem';
13
13
 
14
14
  const marginHorizontal = 20;
15
15
  const widthItem = (Constants.width - marginHorizontal * 2) / 2;
@@ -80,15 +80,16 @@ const FlatListItems = memo(({ data, style, title, offsetTitle }) => {
80
80
  )}
81
81
  </View>
82
82
 
83
- {filtersNeedReplace.length > 0 && filtersNeedReplace[0].measure === 'H' && (
84
- <AlertStatusMachine
85
- message={t('{number}_filter_need_to_be_replaced', {
86
- number: filtersNeedReplace.length,
87
- })}
88
- style={styles.alertReplaceFilter}
89
- icon={'warning'}
90
- />
91
- )}
83
+ {filtersNeedReplace.length > 0 &&
84
+ filtersNeedReplace[0].measure === 'H' && (
85
+ <AlertStatusMachine
86
+ message={t('{number}_filter_need_to_be_replaced', {
87
+ number: filtersNeedReplace.length,
88
+ })}
89
+ style={styles.alertReplaceFilter}
90
+ icon={'warning'}
91
+ />
92
+ )}
92
93
  <View style={styles.listBox}>{renderFlatList()}</View>
93
94
 
94
95
  {isFilters && !viewFull && (
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { create, act } from 'react-test-renderer';
2
+ import { act, create } from 'react-test-renderer';
3
3
  import { SCProvider } from '../../../context';
4
4
  import { mockSCStore } from '../../../context/mockStore';
5
5
  import StatesGridActionTemplate from '../StatesGridActionTemplate';
@@ -27,7 +27,7 @@ describe('Test StatesGridActionTemplate', () => {
27
27
  config: 1024,
28
28
  is_on_value: 1,
29
29
  action: '800ff454-4e2a-4a38-bad6-1bded728193e',
30
- icon: 'up-circle',
30
+ icon: 'upcircle',
31
31
  icon_kit: 41,
32
32
  text: 'Auto',
33
33
  },
@@ -35,7 +35,7 @@ describe('Test StatesGridActionTemplate', () => {
35
35
  config: 1024,
36
36
  is_on_value: 2,
37
37
  action: '4e43da81-469e-4d23-a66b-2656db7cf196',
38
- icon: 'up-circle',
38
+ icon: 'upcircle',
39
39
  icon_kit: 42,
40
40
  text: 'Cool',
41
41
  },
@@ -43,7 +43,7 @@ describe('Test StatesGridActionTemplate', () => {
43
43
  config: 1024,
44
44
  is_on_value: 3,
45
45
  action: '63f1bbfa-0e42-4401-9ea2-4aa07327ff26',
46
- icon: 'up-circle',
46
+ icon: 'upcircle',
47
47
  icon_kit: 44,
48
48
  text: 'Dry',
49
49
  },
@@ -51,7 +51,7 @@ describe('Test StatesGridActionTemplate', () => {
51
51
  config: 1024,
52
52
  is_on_value: 4,
53
53
  action: '8ba3e471-dd84-478b-87f3-6008aead8804',
54
- icon: 'up-circle',
54
+ icon: 'upcircle',
55
55
  icon_kit: 43,
56
56
  text: 'Fan Only',
57
57
  },
@@ -1,11 +1,11 @@
1
- import React, { useRef } from 'react';
1
+ import React from 'react';
2
2
  import { act } from 'react-test-renderer';
3
3
 
4
- import IFrame from '../IFrame';
5
- import WebView from 'react-native-webview';
6
4
  import { TouchableOpacity } from 'react-native';
5
+ import WebView from 'react-native-webview';
7
6
  import { render } from '../../../../../jest/render';
8
7
  import { SCConfig } from '../../../../configs';
8
+ import IFrame from '../IFrame';
9
9
 
10
10
  describe('Test IFrame', () => {
11
11
  let item;
@@ -52,16 +52,7 @@ describe('Test IFrame', () => {
52
52
  });
53
53
 
54
54
  test('test reload', async () => {
55
- const ref = {
56
- current: {},
57
- };
58
- useRef.mockReturnValue(ref);
59
-
60
- const mockReload = jest.fn();
61
55
  const { root } = await render(<IFrame isWidgetBox item={item} />);
62
- ref.current = {
63
- reload: mockReload,
64
- };
65
56
 
66
57
  const buttons = root.findAllByType(TouchableOpacity);
67
58
  expect(buttons).toHaveLength(1);
@@ -70,6 +61,11 @@ describe('Test IFrame', () => {
70
61
  buttons[0].props.onClick();
71
62
  });
72
63
 
73
- expect(mockReload).toHaveBeenCalledTimes(1);
64
+ // expect(mockReload).toHaveBeenCalledTimes(1);
65
+
66
+ // conflict with at current (node_modules/react-native/Libraries/Utilities/useRefEffect.js:36:20)
67
+
68
+ // if current = null, conflict with
69
+ // at __restoreDefaultValues (node_modules/react-native/Libraries/Animated/useAnimatedProps.js:160:16)
74
70
  });
75
71
  });
@@ -1,15 +1,15 @@
1
+ import NetInfo from '@react-native-community/netinfo';
2
+ import { t } from 'i18n-js';
1
3
  import { useCallback } from 'react';
2
4
  import { useSCContextSelector } from '../../context';
3
- import { sendCommandOverHomeAssistant } from '../../iot/RemoteControl/HomeAssistant';
4
- import { sendCommandOverInternet } from '../../iot/RemoteControl/Internet';
5
5
  import {
6
- sendCommandOverBluetooth,
7
- SEND_COMMAND_OVER_BLUETOOTH_FAIL,
8
6
  BLUETOOOH_DEVICE_UNSTABLE,
7
+ SEND_COMMAND_OVER_BLUETOOTH_FAIL,
8
+ sendCommandOverBluetooth,
9
9
  } from '../../iot/RemoteControl/Bluetooth';
10
+ import { sendCommandOverHomeAssistant } from '../../iot/RemoteControl/HomeAssistant';
11
+ import { sendCommandOverInternet } from '../../iot/RemoteControl/Internet';
10
12
  import { ToastBottomHelper } from '../../utils/Utils';
11
- import { t } from 'i18n-js';
12
- import NetInfo from '@react-native-community/netinfo';
13
13
 
14
14
  const handleReconnectionDeviceBle = async (device, action, data, userId) => {
15
15
  for (let i = 0; i < 5; i++) {
@@ -1,8 +1,8 @@
1
1
  import t from '../../hooks/Common/useTranslations';
2
2
 
3
- import { ToastBottomHelper } from '../../utils/Utils';
4
- import { axiosPost } from '../../utils/Apis/axios';
5
3
  import { API } from '../../configs';
4
+ import { axiosPost } from '../../utils/Apis/axios';
5
+ import { ToastBottomHelper } from '../../utils/Utils';
6
6
 
7
7
  export const sendCommandOverInternet = async (sensor, action, data, source) => {
8
8
  if (data !== null) {
@@ -1,37 +1,37 @@
1
+ import NetInfo from '@react-native-community/netinfo';
2
+ import { useIsFocused, useNavigation } from '@react-navigation/native';
3
+ import LottieView from 'lottie-react-native';
1
4
  import React, {
2
5
  useCallback,
3
- useRef,
4
- useState,
5
6
  useEffect,
6
7
  useMemo,
8
+ useRef,
9
+ useState,
7
10
  } from 'react';
8
11
  import {
9
12
  Alert,
10
- TouchableOpacity,
11
- View,
12
13
  FlatList,
13
14
  Platform,
15
+ TouchableOpacity,
16
+ View,
14
17
  } from 'react-native';
15
18
  import dgram from 'react-native-udp';
16
- import { useNavigation, useIsFocused } from '@react-navigation/native';
17
- import LottieView from 'lottie-react-native';
18
19
  import { v4 as uuidv4 } from 'uuid';
19
- import NetInfo from '@react-native-community/netinfo';
20
20
 
21
- import { ToastBottomHelper } from '../../utils/Utils';
22
- import { useTranslations } from '../../hooks/Common/useTranslations';
23
- import { HeaderCustom } from '../../commons/Header';
24
- import Text from '../../commons/Text';
25
21
  import WifiIcon from '../../../assets/images/wifi.svg';
26
22
  import ButtonPopup from '../../commons/ButtonPopup';
27
- import AccessibilityLabel from '../../configs/AccessibilityLabel';
28
- import { Colors } from '../../configs';
29
23
  import TextInputPassword from '../../commons/Form/TextInputPassword';
30
- import styles from './ShareWifiPasswordStyles';
31
- import Routes from '../../utils/Route';
32
24
  import FullLoading from '../../commons/FullLoading';
25
+ import { HeaderCustom } from '../../commons/Header';
26
+ import Text from '../../commons/Text';
27
+ import { Colors } from '../../configs';
28
+ import AccessibilityLabel from '../../configs/AccessibilityLabel';
29
+ import { useTranslations } from '../../hooks/Common/useTranslations';
33
30
  import LoadingCircle from '../../Images/Common/loading-circle.json';
31
+ import Routes from '../../utils/Route';
32
+ import { ToastBottomHelper } from '../../utils/Utils';
34
33
  import { useWifiManage } from './hooks/useWifiManage';
34
+ import styles from './ShareWifiPasswordStyles';
35
35
 
36
36
  let socket;
37
37
  let wifiOrGatewaySSID;
@@ -112,6 +112,7 @@ const ShareWifiPassword = ({ route }) => {
112
112
  '192.168.27.1',
113
113
  undefined
114
114
  );
115
+
115
116
  if (i > 0) {
116
117
  shareWifiToDevice(socket, i);
117
118
  clearTimeout(timeoutSendConnect);
@@ -40,15 +40,11 @@ describe('test share wifi password', () => {
40
40
  });
41
41
 
42
42
  it('render share wifi', async () => {
43
- jest.useFakeTimers();
44
43
  const route = { params: {} };
45
44
  await act(async () => {
46
45
  tree = await renderer.create(wrapComponent(route));
47
46
  });
48
47
  await flushPromises();
49
- await act(async () => {
50
- jest.runOnlyPendingTimers();
51
- });
52
48
 
53
49
  const instance = tree.root;
54
50
  const popups = instance.findAllByType(ButtonPopup);
@@ -48,12 +48,10 @@ describe('Test Detail', () => {
48
48
  const instance = tree.root;
49
49
  const menuActionMore = instance.findAllByType(MenuActionMore);
50
50
  await act(async () => {
51
- jest.runAllTimers();
52
51
  await menuActionMore[0].props.onItemClick(listMenuItem[0]);
53
- jest.advanceTimersByTime(500);
52
+ jest.runAllTimers();
54
53
  });
55
- expect(mockDoAction).toBeCalledTimes(1);
56
- jest.useRealTimers();
54
+ expect(mockDoAction).toHaveBeenCalledTimes(1);
57
55
  });
58
56
 
59
57
  it('test render Detail and MenuActionMore onPress android', async () => {
@@ -69,6 +67,6 @@ describe('Test Detail', () => {
69
67
  await act(async () => {
70
68
  await menuActionMore[0].props.onItemClick(listMenuItem[0]);
71
69
  });
72
- expect(mockDoAction).toBeCalledTimes(1);
70
+ expect(mockDoAction).toHaveBeenCalledTimes(1);
73
71
  });
74
72
  });
@@ -1,7 +1,7 @@
1
- import Detail from './components/Detail';
2
- import TabPaneCT from './components/TabPaneCT';
3
1
  import SegmentedControl from '@react-native-segmented-control/segmented-control';
4
2
  import { act } from 'react-test-renderer';
3
+ import Detail from './components/Detail';
4
+ import TabPaneCT from './components/TabPaneCT';
5
5
 
6
6
  export const fetchGatewayCT = async (tree) => {
7
7
  const instance = tree.root;
@@ -16,5 +16,4 @@ export const fetchGatewayCT = async (tree) => {
16
16
  return { tabPaneCT, detail };
17
17
  };
18
18
 
19
- export const flushPromises = () =>
20
- new Promise((resolve) => setImmediate(resolve));
19
+ export const flushPromises = () => new Promise(process.nextTick);
@@ -1,19 +1,19 @@
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 ChooseAction from '../ChooseAction';
6
- import { SCProvider } from '../../../../context';
7
- import { mockSCStore } from '../../../../context/mockStore';
5
+ import { useNavigation } from '@react-navigation/native';
6
+ import { TouchableOpacity } from 'react-native';
8
7
  import BottomButtonView from '../../../../commons/BottomButtonView';
8
+ import SelectActionCard from '../../../../commons/SelectActionCard';
9
+ import { API } from '../../../../configs';
9
10
  import { AccessibilityLabel, DEVICE_TYPE } from '../../../../configs/Constants';
11
+ import { SCProvider } from '../../../../context';
12
+ import { mockSCStore } from '../../../../context/mockStore';
10
13
  import api from '../../../../utils/Apis/axios';
11
- import { API } from '../../../../configs';
12
- import { TouchableOpacity } from 'react-native';
13
- import SelectActionCard from '../../../../commons/SelectActionCard';
14
- import { useNavigation } from '@react-navigation/native';
15
- import { ToastBottomHelper } from '../../../../utils/Utils';
16
14
  import { getTranslate } from '../../../../utils/I18n';
15
+ import { ToastBottomHelper } from '../../../../utils/Utils';
16
+ import ChooseAction from '../ChooseAction';
17
17
 
18
18
  const mock = new MockAdapter(api.axiosInstance);
19
19
 
@@ -162,7 +162,7 @@ describe('Test ChooseAction', () => {
162
162
  is_on_value: 1,
163
163
  action: '800ff454-4e2a-4a38-bad6-1bded728193e',
164
164
  allow_config_store_value: true,
165
- icon: 'up-circle',
165
+ icon: 'upcircle',
166
166
  icon_kit: 41,
167
167
  text: 'Auto',
168
168
  },
@@ -13,19 +13,19 @@ import ListQualityIndicator from '../../../commons/Device/WaterQualitySensor/Lis
13
13
  import Compass from '../../../commons/Device/WindDirection/Compass';
14
14
  import Anemometer from '../../../commons/Device/WindSpeed/Anemometer';
15
15
  import MediaPlayerDetail from '../../../commons/MediaPlayerDetail';
16
+ import IFrame from '../../../commons/Widgets/IFrame/IFrame';
17
+ import IFrameWithConfig from '../../../commons/Widgets/IFrameWithConfig/IFrameWithConfig';
18
+ import { Device } from '../../../configs';
16
19
  import { AccessibilityLabel, WIDGET_TYPE } from '../../../configs/Constants';
17
20
  import { useSCContextSelector } from '../../../context';
18
21
  import { useRemoteControl } from '../../../hooks/IoT';
19
22
  import { useConfigGlobalState } from '../../../iot/states';
20
23
  import SmartIr from '../../../screens/SmartIr';
24
+ import { standardizeCameraScreenSize } from '../../../utils/Utils';
21
25
  import { useEvaluateValue } from '../hooks/useEvaluateValue';
22
26
  import styles from '../styles';
23
- import VisualChart from './VisualChart';
24
- import { standardizeCameraScreenSize } from '../../../utils/Utils';
25
- import { Device } from '../../../configs';
26
27
  import DonutCharts from './DonutChart';
27
- import IFrame from '../../../commons/Widgets/IFrame/IFrame';
28
- import IFrameWithConfig from '../../../commons/Widgets/IFrameWithConfig/IFrameWithConfig';
28
+ import VisualChart from './VisualChart';
29
29
 
30
30
  const { standardizeWidth, standardizeHeight } = standardizeCameraScreenSize(
31
31
  Device.screenWidth - 32
@@ -5,11 +5,11 @@ import { Calendar } from 'react-native-calendars';
5
5
 
6
6
  import { act, create } from 'react-test-renderer';
7
7
  import PlayBackCamera from '..';
8
+ import MediaPlayerFull from '../../../commons/MediaPlayerDetail/MediaPlayerFull';
8
9
  import Text from '../../../commons/Text';
9
10
  import { AccessibilityLabel } from '../../../configs/Constants';
10
11
  import { SCProvider } from '../../../context';
11
12
  import { mockSCStore } from '../../../context/mockStore';
12
- import MediaPlayerFull from '../../../commons/MediaPlayerDetail/MediaPlayerFull';
13
13
  import Timer from '../Timer';
14
14
 
15
15
  const wrapComponent = () => (
@@ -1,14 +1,14 @@
1
- import React, { useEffect, useCallback, useContext } from 'react';
2
- import { View } from 'react-native';
3
1
  import { useNavigation } from '@react-navigation/native';
2
+ import React, { useCallback, useContext, useEffect } from 'react';
3
+ import { View } from 'react-native';
4
4
  import * as Progress from 'react-native-progress';
5
5
 
6
6
  import Text from '../../../commons/Text';
7
- import { useTranslations } from '../../../hooks/Common/useTranslations';
8
- import { Action } from '../../../context/actionType';
7
+ import { API, Colors, Constants } from '../../../configs';
9
8
  import { SCContext, useSCContextSelector } from '../../../context';
9
+ import { Action } from '../../../context/actionType';
10
+ import { useTranslations } from '../../../hooks/Common/useTranslations';
10
11
  import { axiosPost } from '../../../utils/Apis/axios';
11
- import { API, Colors, Constants } from '../../../configs';
12
12
  import Routes from '../../../utils/Route';
13
13
  import styles from './style';
14
14
 
@@ -1,4 +1,4 @@
1
- import React, { useRef } from 'react';
1
+ import React from 'react';
2
2
  import { Alert } from 'react-native';
3
3
  import { act, create } from 'react-test-renderer';
4
4
  import MockAdapter from 'axios-mock-adapter';
@@ -71,14 +71,6 @@ jest.mock('react-native-permissions', () => {
71
71
  return require('react-native-permissions/mock');
72
72
  });
73
73
 
74
- jest.mock('react', () => {
75
- return {
76
- ...jest.requireActual('react'),
77
- memo: (x) => x,
78
- useRef: jest.fn(),
79
- };
80
- });
81
-
82
74
  describe('Test SelectAddress', () => {
83
75
  let tree, route, Platform;
84
76
  const mockUpdateLocation = jest.fn();
@@ -167,13 +159,6 @@ describe('Test SelectAddress', () => {
167
159
  });
168
160
 
169
161
  it('test chose search result will center map', async () => {
170
- const animateToRegion = jest.fn();
171
- const mapRef = {
172
- current: {
173
- animateToRegion,
174
- },
175
- };
176
- useRef.mockImplementation(() => mapRef);
177
162
  await act(async () => {
178
163
  tree = await create(wrapComponent(route));
179
164
  });
@@ -214,7 +199,6 @@ describe('Test SelectAddress', () => {
214
199
  await act(async () => {
215
200
  await rowLocations[0].props.onPress({ place_id: 1, description: '1' });
216
201
  });
217
- expect(animateToRegion).toBeCalled();
218
202
  });
219
203
 
220
204
  it('test get lat lng of location failed', async () => {