@controleonline/ui-customers 1.0.81 → 1.0.83

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 (64) hide show
  1. package/.github/workflows/integration-source-gate.yml +68 -0
  2. package/.github/workflows/publish-npm.yml +91 -0
  3. package/AGENTS.md +12 -6
  4. package/docs/technical/Client-Details-Criar-Usuario.md +113 -0
  5. package/package.json +5 -4
  6. package/src/react/components/tabs/AddressesTab.js +240 -335
  7. package/src/react/components/tabs/DocumentAttachments.js +270 -0
  8. package/src/react/components/tabs/DocumentsTab.js +355 -463
  9. package/src/react/components/tabs/DocumentsTab.styles.js +123 -0
  10. package/src/react/components/tabs/EmployeeCreateFormFields.js +203 -0
  11. package/src/react/components/tabs/EmployeesTab.js +17 -171
  12. package/src/react/components/tabs/EmployeesTab.styles.js +220 -172
  13. package/src/react/components/tabs/GeneralTab.js +84 -46
  14. package/src/react/components/tabs/GeneralTab.styles.js +81 -77
  15. package/src/react/components/tabs/MediaTab.js +50 -5
  16. package/src/react/components/tabs/PeopleCategoriesPanel.js +161 -78
  17. package/src/react/components/tabs/SalesmanTab.js +1 -1
  18. package/src/react/components/tabs/UserFormModal.js +26 -2
  19. package/src/react/components/tabs/UsersTab.js +30 -19
  20. package/src/react/components/tabs/UsersTab.styles.js +257 -257
  21. package/src/react/components/tabs/UsersTabApiKeyModal.js +115 -0
  22. package/src/react/components/tabs/UsersTabUserModal.js +222 -0
  23. package/src/react/components/tabs/addressesTabHelpers.js +190 -0
  24. package/src/react/components/tabs/documentsTabHelpers.js +142 -0
  25. package/src/react/components/tabs/employeeContacts.js +3 -23
  26. package/src/react/components/tabs/employeeUnlink.js +7 -4
  27. package/src/react/components/tabs/employeesTabHelpers.js +33 -9
  28. package/src/react/components/tabs/generalTabHelpers.js +30 -8
  29. package/src/react/components/tabs/useGeneralTabPeopleLink.js +68 -0
  30. package/src/react/components/tabs/usersTabHelpers.js +24 -23
  31. package/src/react/pages/details.page.styles.js +114 -100
  32. package/src/react/pages/employees.js +4 -0
  33. package/src/react/utils/humanCompanyLinkTypes.js +28 -0
  34. package/src/tests/browser/manager/client-details-add-user-modal.spec.js +281 -0
  35. package/src/tests/browser/manager/client-details-address-create-coords.spec.js +414 -0
  36. package/src/tests/browser/manager/client-details-address-edit.spec.js +331 -0
  37. package/src/tests/browser/manager/client-details-contact-edit.spec.js +198 -0
  38. package/src/tests/browser/manager/client-details-create-contact.spec.js +306 -0
  39. package/src/tests/browser/manager/client-details-documents.spec.js +346 -0
  40. package/src/tests/browser/manager/client-details-identity-case.spec.js +227 -0
  41. package/src/tests/browser/manager/client-details-people-type.manifest.md +18 -0
  42. package/src/tests/browser/manager/client-details-people-type.spec.js +345 -0
  43. package/src/tests/browser/manager/client-details-supplier-product-create.spec.js +334 -0
  44. package/src/tests/browser/manager/client-details-users-tab-load.spec.js +194 -0
  45. package/src/tests/browser/manager/employees-salesman-after-sales.spec.js +441 -0
  46. package/src/tests/react/components/SalesmanTab.company.test.js +40 -0
  47. package/src/tests/react/components/tabs/UsersTab.styles.test.js +39 -0
  48. package/src/tests/react/components/tabs/addressesTabHelpers.test.js +78 -0
  49. package/src/tests/react/components/tabs/documentsTabContract.test.mjs +37 -0
  50. package/src/tests/react/components/tabs/documentsTabHelpers.test.mjs +93 -0
  51. package/src/tests/react/components/tabs/employeeContacts.test.js +46 -4
  52. package/src/tests/react/components/tabs/employeeLinkTypes.contract.test.mjs +52 -0
  53. package/src/tests/react/components/tabs/employeeUnlink.test.js +11 -11
  54. package/src/tests/react/components/tabs/employeesTabHelpers.media.test.js +2 -23
  55. package/src/tests/react/components/tabs/employeesTabHelpers.test.js +59 -0
  56. package/src/tests/react/components/tabs/generalTabHelpers.test.js +35 -0
  57. package/src/tests/react/components/tabs/peopleMediaTabs.test.js +217 -217
  58. package/src/tests/react/components/tabs/peopleType.contract.test.mjs +47 -0
  59. package/src/tests/react/components/tabs/resolveSeededLinkType.test.mjs +20 -0
  60. package/src/tests/react/components/tabs/salesmanTabMedia.no-redeclare.test.mjs +33 -0
  61. package/src/tests/react/components/tabs/usersTabHelpers.test.js +20 -0
  62. package/src/tests/react/components/tabs/usersTabHelpers.test.mjs +63 -0
  63. package/src/tests/react/pages/employees.test.js +2 -0
  64. package/src/tests/react/utils/humanCompanyLinkTypes.test.js +50 -0
@@ -1,260 +1,260 @@
1
- export const inlineStyle_174_6 = {
2
- justifyContent: 'flex-end',
3
- };
4
-
5
- export const inlineStyle_175_12 = {
6
- backgroundColor: '#fff',
7
- borderTopLeftRadius: 24,
8
- borderTopRightRadius: 24,
9
- maxHeight: '80%',
10
- width: '100%',
11
- shadowColor: '#000',
12
-
13
- shadowOffset: {
14
- width: 0,
15
- height: -4,
16
- },
17
-
18
- shadowOpacity: 0.1,
19
- shadowRadius: 12,
20
- elevation: 10,
21
- };
22
-
23
- export const inlineStyle_188_14 = {
24
- flexDirection: 'row',
25
- alignItems: 'center',
26
- justifyContent: 'space-between',
27
- paddingHorizontal: 24,
28
- paddingVertical: 20,
29
- borderBottomWidth: 1,
30
- borderBottomColor: '#F1F5F9',
31
- };
32
-
33
- export const inlineStyle_197_16 = {
34
- fontSize: 20,
35
- fontWeight: '700',
36
- color: '#0F172A',
37
- };
38
-
39
- export const inlineStyle_200_49 = {
40
- width: 32,
41
- height: 32,
42
- borderRadius: 16,
43
- backgroundColor: '#F1F5F9',
44
- alignItems: 'center',
45
- justifyContent: 'center',
46
- };
47
-
48
- export const inlineStyle_208_10 = {
49
- padding: 24,
50
- };
51
-
52
- export const inlineStyle_213_20 = {
53
- marginBottom: 20,
54
- };
55
-
56
- export const inlineStyle_214_22 = {
57
- fontSize: 16,
58
- fontWeight: '600',
59
- color: '#212529',
60
- marginBottom: 8,
61
- };
62
-
63
- export const inlineStyle_216_18 = {
64
- borderWidth: 1,
65
- borderColor: '#e9ecef',
66
- borderRadius: 12,
67
- paddingHorizontal: 16,
68
- paddingVertical: 12,
69
- fontSize: 16,
70
- backgroundColor: '#e9ecef',
71
- color: '#6c757d',
72
- };
73
-
74
- export const inlineStyle_224_20 = {
75
- marginBottom: 20,
76
- };
77
-
78
- export const inlineStyle_225_22 = {
79
- fontSize: 16,
80
- fontWeight: '600',
81
- color: '#212529',
82
- marginBottom: 8,
83
- };
84
-
85
- export const inlineStyle_226_22 = {
86
- position: 'relative',
87
- justifyContent: 'center',
88
- };
89
-
90
- export const inlineStyle_228_20 = {
91
- borderWidth: 1,
92
- borderColor: '#e9ecef',
93
- borderRadius: 12,
94
- paddingHorizontal: 16,
95
- paddingVertical: 12,
96
- paddingRight: 48,
97
- fontSize: 16,
98
- backgroundColor: '#f8f9fa',
99
- };
100
-
101
- export const inlineStyle_239_20 = {
102
- position: 'absolute',
103
- right: 14,
104
- alignSelf: 'stretch',
105
- justifyContent: 'center',
106
- };
107
-
108
- export const inlineStyle_248_20 = {
109
- marginBottom: 24,
110
- };
111
-
112
- export const inlineStyle_249_22 = {
113
- fontSize: 16,
114
- fontWeight: '600',
115
- color: '#212529',
116
- marginBottom: 8,
117
- };
118
-
119
- export const inlineStyle_250_22 = {
120
- position: 'relative',
121
- justifyContent: 'center',
122
- };
123
-
124
- export const inlineStyle_252_20 = {
125
- borderWidth: 1,
126
- borderColor: '#e9ecef',
127
- borderRadius: 12,
128
- paddingHorizontal: 16,
129
- paddingVertical: 12,
130
- paddingRight: 48,
131
- fontSize: 16,
132
- backgroundColor: '#f8f9fa',
133
- };
134
-
135
- export const inlineStyle_263_20 = {
136
- position: 'absolute',
137
- right: 14,
138
- alignSelf: 'stretch',
139
- justifyContent: 'center',
140
- };
141
-
142
- export const inlineStyle_275_20 = {
143
- marginBottom: 20,
144
- };
145
-
146
- export const inlineStyle_276_22 = {
147
- fontSize: 16,
148
- fontWeight: '600',
149
- color: '#212529',
150
- marginBottom: 8,
151
- };
152
-
153
- export const inlineStyle_278_18 = {
154
- borderWidth: 1,
155
- borderColor: '#e9ecef',
156
- borderRadius: 12,
157
- paddingHorizontal: 16,
158
- paddingVertical: 12,
159
- fontSize: 16,
160
- backgroundColor: '#f8f9fa',
161
- };
162
-
163
- export const inlineStyle_288_20 = {
164
- marginBottom: 20,
165
- };
166
-
167
- export const inlineStyle_289_22 = {
168
- fontSize: 16,
169
- fontWeight: '600',
170
- color: '#212529',
171
- marginBottom: 8,
172
- };
173
-
174
- export const inlineStyle_290_22 = {
175
- position: 'relative',
176
- justifyContent: 'center',
177
- };
178
-
179
- export const inlineStyle_292_20 = {
180
- borderWidth: 1,
181
- borderColor: '#e9ecef',
182
- borderRadius: 12,
183
- paddingHorizontal: 16,
184
- paddingVertical: 12,
185
- paddingRight: 48,
186
- fontSize: 16,
187
- backgroundColor: '#f8f9fa',
188
- };
189
-
190
- export const inlineStyle_303_20 = {
191
- position: 'absolute',
192
- right: 14,
193
- alignSelf: 'stretch',
194
- justifyContent: 'center',
195
- };
196
-
197
- export const inlineStyle_312_20 = {
198
- marginBottom: 24,
199
- };
200
-
201
- export const inlineStyle_313_22 = {
202
- fontSize: 16,
203
- fontWeight: '600',
204
- color: '#212529',
205
- marginBottom: 8,
206
- };
207
-
208
- export const inlineStyle_314_22 = {
209
- position: 'relative',
210
- justifyContent: 'center',
211
- };
212
-
213
- export const inlineStyle_316_20 = {
214
- borderWidth: 1,
215
- borderColor: '#e9ecef',
216
- borderRadius: 12,
217
- paddingHorizontal: 16,
218
- paddingVertical: 12,
219
- paddingRight: 48,
220
- fontSize: 16,
221
- backgroundColor: '#f8f9fa',
222
- };
223
-
224
- export const inlineStyle_327_20 = {
225
- position: 'absolute',
226
- right: 14,
227
- alignSelf: 'stretch',
228
- justifyContent: 'center',
229
- };
230
-
231
- export const inlineStyle_339_16 = {
232
- flexDirection: 'row',
233
- gap: 12,
234
- paddingHorizontal: 24,
235
- paddingTop: 12,
236
- paddingBottom: 24,
237
- borderTopWidth: 1,
238
- borderTopColor: '#F1F5F9',
239
- };
240
-
241
- export const inlineStyle_341_14 = {
242
- flex: 1,
243
- paddingVertical: 14,
244
- borderRadius: 12,
245
- borderWidth: 1,
246
- borderColor: '#64748B',
247
- alignItems: 'center',
248
- };
249
-
250
- export const inlineStyle_348_20 = {
251
- flex: 1,
252
- paddingVertical: 14,
253
- borderRadius: 12,
254
- backgroundColor: '#0F172A',
255
- alignItems: 'center',
256
- justifyContent: 'center',
257
- };
1
+ export const inlineStyle_174_6 = {
2
+ justifyContent: 'flex-end',
3
+ };
4
+
5
+ export const inlineStyle_175_12 = {
6
+ backgroundColor: '#fff',
7
+ borderTopLeftRadius: 24,
8
+ borderTopRightRadius: 24,
9
+ maxHeight: '80%',
10
+ width: '100%',
11
+ shadowColor: '#000',
12
+
13
+ shadowOffset: {
14
+ width: 0,
15
+ height: -4,
16
+ },
17
+
18
+ shadowOpacity: 0.1,
19
+ shadowRadius: 12,
20
+ elevation: 10,
21
+ };
22
+
23
+ export const inlineStyle_188_14 = {
24
+ flexDirection: 'row',
25
+ alignItems: 'center',
26
+ justifyContent: 'space-between',
27
+ paddingHorizontal: 24,
28
+ paddingVertical: 20,
29
+ borderBottomWidth: 1,
30
+ borderBottomColor: '#F1F5F9',
31
+ };
32
+
33
+ export const inlineStyle_197_16 = {
34
+ fontSize: 20,
35
+ fontWeight: '700',
36
+ color: '#0F172A',
37
+ };
38
+
39
+ export const inlineStyle_200_49 = {
40
+ width: 32,
41
+ height: 32,
42
+ borderRadius: 16,
43
+ backgroundColor: '#F1F5F9',
44
+ alignItems: 'center',
45
+ justifyContent: 'center',
46
+ };
47
+
48
+ export const inlineStyle_208_10 = {
49
+ padding: 24,
50
+ };
51
+
52
+ export const inlineStyle_213_20 = {
53
+ marginBottom: 20,
54
+ };
55
+
56
+ export const inlineStyle_214_22 = {
57
+ fontSize: 16,
58
+ fontWeight: '600',
59
+ color: '#212529',
60
+ marginBottom: 8,
61
+ };
62
+
63
+ export const inlineStyle_216_18 = {
64
+ borderWidth: 1,
65
+ borderColor: '#e9ecef',
66
+ borderRadius: 12,
67
+ paddingHorizontal: 16,
68
+ paddingVertical: 12,
69
+ fontSize: 16,
70
+ backgroundColor: '#e9ecef',
71
+ color: '#6c757d',
72
+ };
73
+
74
+ export const inlineStyle_224_20 = {
75
+ marginBottom: 20,
76
+ };
77
+
78
+ export const inlineStyle_225_22 = {
79
+ fontSize: 16,
80
+ fontWeight: '600',
81
+ color: '#212529',
82
+ marginBottom: 8,
83
+ };
84
+
85
+ export const inlineStyle_226_22 = {
86
+ position: 'relative',
87
+ justifyContent: 'center',
88
+ };
89
+
90
+ export const inlineStyle_228_20 = {
91
+ borderWidth: 1,
92
+ borderColor: '#e9ecef',
93
+ borderRadius: 12,
94
+ paddingHorizontal: 16,
95
+ paddingVertical: 12,
96
+ paddingRight: 48,
97
+ fontSize: 16,
98
+ backgroundColor: '#f8f9fa',
99
+ };
100
+
101
+ export const inlineStyle_239_20 = {
102
+ position: 'absolute',
103
+ right: 14,
104
+ alignSelf: 'stretch',
105
+ justifyContent: 'center',
106
+ };
107
+
108
+ export const inlineStyle_248_20 = {
109
+ marginBottom: 24,
110
+ };
111
+
112
+ export const inlineStyle_249_22 = {
113
+ fontSize: 16,
114
+ fontWeight: '600',
115
+ color: '#212529',
116
+ marginBottom: 8,
117
+ };
118
+
119
+ export const inlineStyle_250_22 = {
120
+ position: 'relative',
121
+ justifyContent: 'center',
122
+ };
123
+
124
+ export const inlineStyle_252_20 = {
125
+ borderWidth: 1,
126
+ borderColor: '#e9ecef',
127
+ borderRadius: 12,
128
+ paddingHorizontal: 16,
129
+ paddingVertical: 12,
130
+ paddingRight: 48,
131
+ fontSize: 16,
132
+ backgroundColor: '#f8f9fa',
133
+ };
134
+
135
+ export const inlineStyle_263_20 = {
136
+ position: 'absolute',
137
+ right: 14,
138
+ alignSelf: 'stretch',
139
+ justifyContent: 'center',
140
+ };
141
+
142
+ export const inlineStyle_275_20 = {
143
+ marginBottom: 20,
144
+ };
145
+
146
+ export const inlineStyle_276_22 = {
147
+ fontSize: 16,
148
+ fontWeight: '600',
149
+ color: '#212529',
150
+ marginBottom: 8,
151
+ };
152
+
153
+ export const inlineStyle_278_18 = {
154
+ borderWidth: 1,
155
+ borderColor: '#e9ecef',
156
+ borderRadius: 12,
157
+ paddingHorizontal: 16,
158
+ paddingVertical: 12,
159
+ fontSize: 16,
160
+ backgroundColor: '#f8f9fa',
161
+ };
162
+
163
+ export const inlineStyle_288_20 = {
164
+ marginBottom: 20,
165
+ };
166
+
167
+ export const inlineStyle_289_22 = {
168
+ fontSize: 16,
169
+ fontWeight: '600',
170
+ color: '#212529',
171
+ marginBottom: 8,
172
+ };
173
+
174
+ export const inlineStyle_290_22 = {
175
+ position: 'relative',
176
+ justifyContent: 'center',
177
+ };
178
+
179
+ export const inlineStyle_292_20 = {
180
+ borderWidth: 1,
181
+ borderColor: '#e9ecef',
182
+ borderRadius: 12,
183
+ paddingHorizontal: 16,
184
+ paddingVertical: 12,
185
+ paddingRight: 48,
186
+ fontSize: 16,
187
+ backgroundColor: '#f8f9fa',
188
+ };
189
+
190
+ export const inlineStyle_303_20 = {
191
+ position: 'absolute',
192
+ right: 14,
193
+ alignSelf: 'stretch',
194
+ justifyContent: 'center',
195
+ };
196
+
197
+ export const inlineStyle_312_20 = {
198
+ marginBottom: 24,
199
+ };
200
+
201
+ export const inlineStyle_313_22 = {
202
+ fontSize: 16,
203
+ fontWeight: '600',
204
+ color: '#212529',
205
+ marginBottom: 8,
206
+ };
207
+
208
+ export const inlineStyle_314_22 = {
209
+ position: 'relative',
210
+ justifyContent: 'center',
211
+ };
212
+
213
+ export const inlineStyle_316_20 = {
214
+ borderWidth: 1,
215
+ borderColor: '#e9ecef',
216
+ borderRadius: 12,
217
+ paddingHorizontal: 16,
218
+ paddingVertical: 12,
219
+ paddingRight: 48,
220
+ fontSize: 16,
221
+ backgroundColor: '#f8f9fa',
222
+ };
223
+
224
+ export const inlineStyle_327_20 = {
225
+ position: 'absolute',
226
+ right: 14,
227
+ alignSelf: 'stretch',
228
+ justifyContent: 'center',
229
+ };
230
+
231
+ export const inlineStyle_339_16 = {
232
+ flexDirection: 'row',
233
+ gap: 12,
234
+ paddingHorizontal: 24,
235
+ paddingTop: 12,
236
+ paddingBottom: 24,
237
+ borderTopWidth: 1,
238
+ borderTopColor: '#F1F5F9',
239
+ };
240
+
241
+ export const inlineStyle_341_14 = {
242
+ flex: 1,
243
+ paddingVertical: 14,
244
+ borderRadius: 12,
245
+ borderWidth: 1,
246
+ borderColor: '#64748B',
247
+ alignItems: 'center',
248
+ };
249
+
250
+ export const inlineStyle_348_20 = {
251
+ flex: 1,
252
+ paddingVertical: 14,
253
+ borderRadius: 12,
254
+ backgroundColor: '#0F172A',
255
+ alignItems: 'center',
256
+ justifyContent: 'center',
257
+ };
258
258
 
259
259
  export const timezoneListStyle = {
260
260
  borderWidth: 1,
@@ -0,0 +1,115 @@
1
+ import React from 'react';
2
+ import {
3
+ ActivityIndicator,
4
+ Text,
5
+ TouchableOpacity,
6
+ ScrollView,
7
+ TextInput,
8
+ View,
9
+ } from 'react-native';
10
+ import AnimatedModal from '@controleonline/ui-common/src/react/components/AnimatedModal';
11
+ import FeatherIcon from 'react-native-vector-icons/Feather';
12
+ import Icon from 'react-native-vector-icons/MaterialIcons';
13
+ import {
14
+ inlineStyle_174_6,
15
+ inlineStyle_175_12,
16
+ inlineStyle_188_14,
17
+ inlineStyle_197_16,
18
+ inlineStyle_200_49,
19
+ inlineStyle_208_10,
20
+ inlineStyle_213_20,
21
+ inlineStyle_214_22,
22
+ inlineStyle_216_18,
23
+ inlineStyle_248_20,
24
+ inlineStyle_249_22,
25
+ inlineStyle_252_20,
26
+ } from './UsersTab.styles';
27
+
28
+ const UsersTabApiKeyModal = ({
29
+ visible,
30
+ onClose,
31
+ apiKeyItem,
32
+ customStyles,
33
+ isRefreshingApiKey,
34
+ onCopy,
35
+ onRefresh,
36
+ }) => (
37
+ ) => (
38
+ <AnimatedModal
39
+ visible={visible}
40
+ onRequestClose={onClose}
41
+ style={inlineStyle_174_6}>
42
+ <View style={inlineStyle_175_12}>
43
+ <View style={inlineStyle_188_14}>
44
+ <Text style={inlineStyle_197_16}>Chave de API</Text>
45
+ <TouchableOpacity onPress={onClose} style={inlineStyle_200_49}>
46
+ <Icon name="close" size={20} color="#64748B" />
47
+ </TouchableOpacity>
48
+ </View>
49
+
50
+ <ScrollView
51
+ style={inlineStyle_208_10}
52
+ keyboardShouldPersistTaps="handled"
53
+ keyboardDismissMode="on-drag">
54
+ <View style={inlineStyle_213_20}>
55
+ <Text style={inlineStyle_214_22}>Usuário</Text>
56
+ <TextInput
57
+ style={inlineStyle_216_18}
58
+ value={apiKeyItem?.username || apiKeyItem?.name || ''}
59
+ editable={false}
60
+ />
61
+ </View>
62
+
63
+ <View style={inlineStyle_248_20}>
64
+ <Text style={inlineStyle_249_22}>Chave atual</Text>
65
+ <TextInput
66
+ style={inlineStyle_252_20}
67
+ value={apiKeyItem?.apiKey || ''}
68
+ editable={false}
69
+ multiline
70
+ />
71
+ </View>
72
+
73
+ <View style={inlineStyle_apiKeyButtonRow}>
74
+ <TouchableOpacity
75
+ style={inlineStyle_apiKeySecondaryButton}
76
+ onPress={onCopy}>
77
+ <Text style={inlineStyle_apiKeySecondaryText}>Copiar</Text>
78
+ </TouchableOpacity>
79
+
80
+ <TouchableOpacity
81
+ style={inlineStyle_apiKeySecondaryButton}
82
+ onPress={onClose}>
83
+ <Text style={inlineStyle_apiKeySecondaryText}>Fechar</Text>
84
+ </TouchableOpacity>
85
+
86
+ <TouchableOpacity
87
+ style={[
88
+ customStyles.saveButton,
89
+ isRefreshingApiKey && customStyles.saveButtonDisabled,
90
+ ]}
91
+ onPress={() => onRefresh()}
92
+ disabled={isRefreshingApiKey}>
93
+ {isRefreshingApiKey ? (
94
+ <ActivityIndicator
95
+ size="small"
96
+ color={customStyles.saveButtonText.color}
97
+ />
98
+ ) : (
99
+ <>
100
+ <FeatherIcon
101
+ name="plus"
102
+ size={16}
103
+ color={customStyles.iconButtonPrimaryIcon.color}
104
+ />
105
+ <Text style={customStyles.saveButtonText}>Nova chave</Text>
106
+ </>
107
+ )}
108
+ </TouchableOpacity>
109
+ </View>
110
+ </ScrollView>
111
+ </View>
112
+ </AnimatedModal>
113
+ );
114
+
115
+ export default UsersTabApiKeyModal;