@eohjsc/react-native-smart-city 0.2.23 → 0.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +1 -1
  2. package/assets/images/OneTap@1x.svg +14 -0
  3. package/index.js +0 -2
  4. package/package.json +11 -3
  5. package/src/Images/Common/arrow-back.png +0 -0
  6. package/src/Images/Common/checked@2x.png +0 -0
  7. package/src/Images/Common/checked@3x.png +0 -0
  8. package/src/Images/Common/file.png +0 -0
  9. package/src/Images/Common/fullscreen.png +0 -0
  10. package/src/Images/Common/refresh.png +0 -0
  11. package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
  12. package/src/commons/ActionGroup/OnOffTemplate/index.js +4 -4
  13. package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +1 -1
  14. package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
  15. package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
  16. package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
  17. package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -46
  18. package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
  19. package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
  20. package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
  21. package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
  22. package/src/commons/ActionGroup/__test__/index.test.js +39 -107
  23. package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
  24. package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
  25. package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
  26. package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
  27. package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
  28. package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
  29. package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
  30. package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
  31. package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
  32. package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
  33. package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
  34. package/src/commons/ActionTemplate/index.js +69 -0
  35. package/src/commons/Automate/ItemAutomate.js +1 -31
  36. package/src/commons/Automate/ItemAutomateStyles.js +10 -7
  37. package/src/commons/Automate/ItemScriptAction.js +9 -5
  38. package/src/commons/Automate/ItemScriptActionStyles.js +4 -0
  39. package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
  40. package/src/commons/Device/DeviceAlertStatus.js +3 -1
  41. package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
  42. package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
  43. package/src/commons/Device/FlatListItems.js +1 -1
  44. package/src/commons/Device/ItemAddNew/index.js +6 -1
  45. package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
  46. package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
  47. package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
  48. package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
  49. package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -6
  50. package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
  51. package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
  52. package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
  53. package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
  54. package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
  55. package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
  56. package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
  57. package/src/commons/Explore/__test__/CityItem.test.js +13 -15
  58. package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
  59. package/src/commons/Header/HeaderCustom.js +7 -1
  60. package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
  61. package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
  62. package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
  63. package/src/commons/MediaPlayerDetail/index.js +2 -0
  64. package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
  65. package/src/commons/Modal/ModalBottom.js +51 -0
  66. package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
  67. package/src/commons/Modal/index.js +2 -1
  68. package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
  69. package/src/commons/SelectActionCard/index.js +30 -0
  70. package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
  71. package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
  72. package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
  73. package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
  74. package/src/commons/SubUnit/OneTap/ItemOneTap.js +20 -9
  75. package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +149 -0
  76. package/src/commons/SubUnit/OneTap/index.js +16 -6
  77. package/src/commons/SubUnit/ShortDetail.js +9 -5
  78. package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
  79. package/src/commons/Today/__test__/Today.test.js +9 -1
  80. package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
  81. package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
  82. package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
  83. package/src/configs/API.js +6 -1
  84. package/src/configs/Constants.js +42 -0
  85. package/src/context/SCContext.tsx +2 -26
  86. package/src/context/actionType.ts +11 -0
  87. package/src/context/mockStore.ts +49 -0
  88. package/src/context/reducer.ts +21 -0
  89. package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
  90. package/src/hooks/Common/index.js +2 -0
  91. package/src/hooks/Common/useGetIdUser.js +9 -0
  92. package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -6
  93. package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -4
  94. package/src/iot/RemoteControl/__test__/Internet.test.js +1 -9
  95. package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
  96. package/src/navigations/UnitStack.js +14 -0
  97. package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
  98. package/src/screens/AQIGuide/index.js +1 -1
  99. package/src/screens/ActivityLog/__test__/index.test.js +14 -39
  100. package/src/screens/AddCommon/SelectSubUnit.js +2 -2
  101. package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
  102. package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
  103. package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
  104. package/src/screens/AddNewAction/SelectAction.js +152 -0
  105. package/src/screens/AddNewAction/SelectDevice.js +25 -11
  106. package/src/screens/AddNewAction/Styles/SelectActionStyles.js +24 -0
  107. package/src/screens/AddNewAction/__test__/SelectAction.test.js +172 -0
  108. package/src/screens/AddNewAction/__test__/SelectDevice.test.js +191 -0
  109. package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +55 -0
  110. package/src/screens/AddNewAutoSmart/index.js +85 -0
  111. package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
  112. package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -14
  113. package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -8
  114. package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -7
  115. package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -73
  116. package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -5
  117. package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -11
  118. package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +129 -0
  119. package/src/screens/AddNewOneTap/index.js +20 -7
  120. package/src/screens/AddNewScriptAction/AddNewScriptActionStyles.js +1 -0
  121. package/src/screens/AddNewScriptAction/index.js +21 -13
  122. package/src/screens/Device/__test__/detail.test.js +26 -19
  123. package/src/screens/Device/detail.js +5 -4
  124. package/src/screens/Device/hooks/useCountUp.js +4 -0
  125. package/src/screens/Device/styles.js +5 -1
  126. package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
  127. package/src/screens/EditActionsList/Styles/indexStyles.js +11 -0
  128. package/src/screens/EditActionsList/index.js +83 -19
  129. package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -19
  130. package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -24
  131. package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
  132. package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
  133. package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
  134. package/src/screens/ScriptDetail/Styles/indexStyles.js +4 -1
  135. package/src/screens/ScriptDetail/index.js +30 -28
  136. package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
  137. package/src/screens/Sharing/__test__/MemberList.test.js +17 -14
  138. package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
  139. package/src/screens/Sharing/__test__/SelectUser.test.js +33 -16
  140. package/src/screens/SubUnit/Detail.js +3 -3
  141. package/src/screens/SubUnit/ManageSubUnit.js +8 -8
  142. package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -12
  143. package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
  144. package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +42 -32
  145. package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
  146. package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
  147. package/src/screens/Unit/Detail.js +33 -11
  148. package/src/screens/Unit/ManageUnit.js +1 -1
  149. package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
  150. package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
  151. package/src/screens/Unit/__test__/Detail.test.js +92 -33
  152. package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
  153. package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
  154. package/src/screens/UnitSummary/__test__/index.test.js +12 -4
  155. package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
  156. package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
  157. package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
  158. package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
  159. package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
  160. package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
  161. package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
  162. package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
  163. package/src/utils/I18n/translations/en.json +9 -2
  164. package/src/utils/I18n/translations/vi.json +10 -3
  165. package/src/utils/Route/index.js +3 -2
  166. package/assets/images/Event.svg +0 -9
  167. package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
  168. package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
  169. package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
  170. package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
  171. package/src/commons/Explore/__test__/HeaderExplore.test.js +0 -21
  172. package/src/commons/Header/__test__/Header.test.js +0 -24
  173. package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
  174. package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
  175. package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
  176. package/src/iot/RemoteControl/__test__/index.test.js +0 -102
  177. package/src/iot/__test__/Monitor.test.js +0 -119
  178. package/src/navigations/AddNewActionStack.js +0 -23
  179. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
  180. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
  181. package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
  182. package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -359
  183. package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  184. package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
  185. package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
  186. package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
  187. package/src/screens/Unit/components/__test__/MyUnit.test.js +0 -85
  188. package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
  189. package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
  190. package/src/utils/Converter/__test__/time.test.js +0 -128
  191. package/src/utils/I18n/index.test.js +0 -7
@@ -1,102 +0,0 @@
1
- import {
2
- mockSendCommandOverBluetooth,
3
- mockSendCommandOverGoogleHome,
4
- mockSendCommandOverInternet,
5
- mockSendCommandOverLGThinq,
6
- } from './index.mock.js'; // need to be imported first in the file
7
- import { sendRemoteCommand } from '../index';
8
- import Toast from 'react-native-toast-message';
9
- import { useTranslations } from '../../../hooks/Common/useTranslations';
10
- import { SEND_COMMAND_OVER_BLUETOOTH_FAIL } from '../Bluetooth';
11
-
12
- describe('Test Remote Control', () => {
13
- const t = useTranslations();
14
- beforeEach(() => {
15
- Toast.show.mockClear();
16
- mockSendCommandOverBluetooth.mockClear();
17
- mockSendCommandOverInternet.mockClear();
18
- });
19
- it('Send remote command will show error when no permission', async () => {
20
- await sendRemoteCommand({}, null);
21
- expect(Toast.show).toBeCalledWith({
22
- type: 'error',
23
- position: 'bottom',
24
- text1: t('your_account_has_not_been_authorized_to_control'),
25
- visibilityTime: 1000,
26
- });
27
- });
28
-
29
- it('Send remote command route over bluetooth', async () => {
30
- await sendRemoteCommand(
31
- {},
32
- {
33
- command_prefer_over_bluetooth: true,
34
- }
35
- );
36
- expect(mockSendCommandOverBluetooth).toBeCalled();
37
- expect(mockSendCommandOverInternet).not.toBeCalled();
38
- });
39
-
40
- it('Send remote command route over bluetooth fail over to internet', async () => {
41
- mockSendCommandOverBluetooth.mockImplementation(async () => {
42
- throw SEND_COMMAND_OVER_BLUETOOTH_FAIL;
43
- });
44
- await sendRemoteCommand(
45
- {},
46
- {
47
- command_prefer_over_bluetooth: true,
48
- }
49
- );
50
- expect(mockSendCommandOverBluetooth).toBeCalled();
51
- expect(mockSendCommandOverInternet).toBeCalled();
52
- });
53
-
54
- it('Send remote command route over bluetooth fail unexpected not call internet', async () => {
55
- mockSendCommandOverBluetooth.mockImplementation(async () => {
56
- throw 'not send bluetooth error';
57
- });
58
- try {
59
- await sendRemoteCommand(
60
- {},
61
- {
62
- command_prefer_over_bluetooth: true,
63
- }
64
- );
65
- } catch (error) {
66
- // expect to throw async not work
67
- expect(error).toEqual('not send bluetooth error');
68
- }
69
- expect(mockSendCommandOverBluetooth).toBeCalled();
70
- expect(mockSendCommandOverInternet).not.toBeCalled();
71
- });
72
-
73
- it('Send remote command route over internet', async () => {
74
- await sendRemoteCommand(
75
- {},
76
- {
77
- command_prefer_over_internet: true,
78
- }
79
- );
80
- expect(mockSendCommandOverInternet).toBeCalled();
81
- });
82
-
83
- it('Send remote command route over google home', async () => {
84
- await sendRemoteCommand(
85
- {},
86
- {
87
- command_prefer_over_googlehome: true,
88
- }
89
- );
90
- expect(mockSendCommandOverGoogleHome).toBeCalled();
91
- });
92
-
93
- it('Send remote command route over lg_thinq', async () => {
94
- await sendRemoteCommand(
95
- {},
96
- {
97
- command_prefer_over_lg: true,
98
- }
99
- );
100
- expect(mockSendCommandOverLGThinq).toBeCalled();
101
- });
102
- });
@@ -1,119 +0,0 @@
1
- import axios from 'axios';
2
- import { API } from '../../configs';
3
- import {
4
- unwatchAllConfigs,
5
- unwatchMultiConfigs,
6
- watchMultiConfigs,
7
- } from '../Monitor';
8
- import { getConfigGlobalState } from '../states';
9
- import Pusher from 'pusher-js/react-native';
10
-
11
- jest.mock('axios');
12
- describe('Test Monitor IoT Config', () => {
13
- const authData = {
14
- auth: '',
15
- };
16
- const pusher = new Pusher();
17
- const channel = pusher.subscribe();
18
-
19
- beforeEach(() => {
20
- axios.post.mockClear();
21
- channel.bind.mockClear();
22
- Pusher().unsubscribe.mockClear();
23
- axios.post.mockImplementation((url) => {
24
- if (url === API.IOT.CHIP_MANAGER.WATCH_CONFIGS()) {
25
- return { status: 200, data: {}, success: true };
26
- }
27
- return { status: 200, data: authData, success: true };
28
- });
29
- unwatchAllConfigs();
30
- });
31
-
32
- afterEach(() => {
33
- unwatchAllConfigs();
34
- });
35
-
36
- it('Watch configs will call watch API', async () => {
37
- await watchMultiConfigs([1]);
38
- expect(axios.post).toBeCalledWith(API.IOT.CHIP_MANAGER.WATCH_CONFIGS(), {
39
- configs: [1],
40
- });
41
- expect(channel.bind).toBeCalled();
42
- });
43
-
44
- it('Watch configs will call watch API failed', async () => {
45
- axios.post.mockImplementationOnce(() => {
46
- return { status: 400, data: {}, success: false };
47
- });
48
-
49
- await watchMultiConfigs([1]);
50
-
51
- expect(axios.post).toBeCalledWith(API.IOT.CHIP_MANAGER.WATCH_CONFIGS(), {
52
- configs: [1],
53
- });
54
- expect(channel.bind).not.toBeCalled();
55
- });
56
-
57
- it('Seconds watch will not call subscribe', async () => {
58
- await watchMultiConfigs([1]);
59
-
60
- pusher.subscribe.mockClear();
61
- await watchMultiConfigs([1]);
62
- expect(pusher.subscribe).toBeCalledTimes(0);
63
-
64
- pusher.subscribe.mockClear();
65
- await watchMultiConfigs([1, 2]);
66
- expect(pusher.subscribe).toBeCalledTimes(1);
67
- });
68
-
69
- it('Update global config when new value come', async () => {
70
- let listener = null;
71
- channel.bind.mockImplementation((event, method) => {
72
- listener = method;
73
- });
74
- await watchMultiConfigs([1]);
75
-
76
- listener(1);
77
- let configValues = getConfigGlobalState('configValues');
78
- expect(configValues).toEqual({ 1: 1 });
79
-
80
- listener(0);
81
- configValues = getConfigGlobalState('configValues');
82
- expect(configValues).toEqual({ 1: 0 });
83
- });
84
-
85
- it('Authorizer call pusher auth', async () => {
86
- let authorizer = null;
87
- Pusher.mockImplementationOnce((key, options) => {
88
- authorizer = options.authorizer;
89
- return {
90
- subscribe: () => ({
91
- bind: jest.fn(),
92
- }),
93
- };
94
- });
95
- await watchMultiConfigs([1]);
96
- const { authorize } = authorizer({ name: 'private-config-1' });
97
-
98
- let authFunc = jest.fn();
99
- await authorize('1234.5678', authFunc);
100
- expect(axios.post).toBeCalledWith(API.IOT.CHIP_MANAGER.PUSHER_AUTH(), {
101
- channel_name: 'private-config-1',
102
- socket_id: '1234.5678',
103
- });
104
- expect(authFunc).toBeCalled();
105
-
106
- axios.post.mockImplementationOnce(() => {
107
- return { status: 400, data: {}, success: false };
108
- });
109
-
110
- authFunc.mockClear();
111
- await authorize('1234.5678', authFunc);
112
- expect(authFunc).not.toBeCalled();
113
- });
114
-
115
- it('unwatch not existing config', async () => {
116
- await unwatchMultiConfigs([1]);
117
- expect(pusher.unsubscribe).not.toBeCalled();
118
- });
119
- });
@@ -1,23 +0,0 @@
1
- import { createStackNavigator } from '@react-navigation/stack';
2
- import React, { memo } from 'react';
3
-
4
- import SelectDevice from '../screens/AddNewAction/SelectDevice';
5
- import Route from '../utils/Route';
6
-
7
- const Stack = createStackNavigator();
8
-
9
- export const AddNewActionStack = memo((props) => {
10
- return (
11
- <Stack.Navigator
12
- screenOptions={{
13
- headerShown: false,
14
- }}
15
- >
16
- <Stack.Screen
17
- name={Route.SelectDevice}
18
- component={SelectDevice}
19
- options={{ headerShown: false }}
20
- />
21
- </Stack.Navigator>
22
- );
23
- });