@onairos/react-native 3.0.39 → 3.0.40
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/lib/commonjs/components/TrainingModal.js +183 -13
- package/lib/commonjs/components/TrainingModal.js.map +1 -1
- package/lib/module/components/TrainingModal.js +183 -14
- package/lib/module/components/TrainingModal.js.map +1 -1
- package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/components/TrainingModal.tsx +190 -10
|
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TrainingModal = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _MaterialIcons = _interopRequireDefault(require("react-native-vector-icons/MaterialIcons"));
|
|
9
10
|
var _constants = require("../constants");
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
13
|
const {
|
|
12
14
|
width,
|
|
13
15
|
height
|
|
@@ -22,6 +24,154 @@ const TrainingModal = ({
|
|
|
22
24
|
username
|
|
23
25
|
}) => {
|
|
24
26
|
const progressPercentage = Math.round(progress * 100);
|
|
27
|
+
|
|
28
|
+
// Socket and training state
|
|
29
|
+
const socketRef = (0, _react.useRef)(null);
|
|
30
|
+
const [socketConnected, setSocketConnected] = (0, _react.useState)(false);
|
|
31
|
+
const [trainingStatus, setTrainingStatus] = (0, _react.useState)('Initializing...');
|
|
32
|
+
const [hasError, setHasError] = (0, _react.useState)(false);
|
|
33
|
+
const [isTrainingComplete, setIsTrainingComplete] = (0, _react.useState)(false);
|
|
34
|
+
const [userTraits, setUserTraits] = (0, _react.useState)(null);
|
|
35
|
+
const [inferenceResults, setInferenceResults] = (0, _react.useState)(null);
|
|
36
|
+
|
|
37
|
+
// Mock user data for now - in real implementation this would come from props
|
|
38
|
+
const userToken = 'mock-token'; // TODO: Get from actual auth
|
|
39
|
+
const userInfo = {
|
|
40
|
+
username: username || 'mobile_user',
|
|
41
|
+
email: null,
|
|
42
|
+
id: null,
|
|
43
|
+
name: username || 'mobile_user'
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Start Enoch training via API
|
|
47
|
+
const startEnochTraining = async socketId => {
|
|
48
|
+
try {
|
|
49
|
+
setTrainingStatus('Starting training...');
|
|
50
|
+
if (!userToken) {
|
|
51
|
+
throw new Error('No authentication token available');
|
|
52
|
+
}
|
|
53
|
+
console.log('🚀 Starting Enoch training with socketId:', socketId);
|
|
54
|
+
|
|
55
|
+
// Prepare user data for training
|
|
56
|
+
const trainingData = {
|
|
57
|
+
socketId,
|
|
58
|
+
username: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user',
|
|
59
|
+
email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
|
|
60
|
+
modelKey: modelKey || null,
|
|
61
|
+
userId: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.id) || null
|
|
62
|
+
};
|
|
63
|
+
console.log('📤 Sending training data:', trainingData);
|
|
64
|
+
|
|
65
|
+
// For now, simulate the API call since we don't have real tokens
|
|
66
|
+
// TODO: Uncomment when real authentication is available
|
|
67
|
+
/*
|
|
68
|
+
const response = await fetch('https://api2.onairos.uk/enoch/trainModel/mobile', {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
headers: {
|
|
71
|
+
'Content-Type': 'application/json',
|
|
72
|
+
'Authorization': `Bearer ${userToken}`
|
|
73
|
+
},
|
|
74
|
+
body: JSON.stringify(trainingData)
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const result = await response.json();
|
|
78
|
+
|
|
79
|
+
if (result.success) {
|
|
80
|
+
console.log('🚀 Training Started:', result.message);
|
|
81
|
+
setTrainingStatus('Training model...');
|
|
82
|
+
} else {
|
|
83
|
+
console.error('Training start failed:', result.error);
|
|
84
|
+
setTrainingStatus(`Error: ${result.error}`);
|
|
85
|
+
setHasError(true);
|
|
86
|
+
}
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
// Simulate successful training start
|
|
90
|
+
console.log('🚀 Training Started (simulated)');
|
|
91
|
+
setTrainingStatus('Training model...');
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error('Training start error:', error);
|
|
94
|
+
setTrainingStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
95
|
+
setHasError(true);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
// Setup socket connection and training
|
|
100
|
+
(0, _react.useEffect)(() => {
|
|
101
|
+
if (!visible || !userInfo) return;
|
|
102
|
+
console.log('Setting up socket connection for training...');
|
|
103
|
+
console.log('🧑💻 User info available:', userInfo);
|
|
104
|
+
|
|
105
|
+
// For now, simulate the socket connection since we don't have real auth
|
|
106
|
+
// TODO: Uncomment when real authentication is available
|
|
107
|
+
/*
|
|
108
|
+
// Initialize socket connection
|
|
109
|
+
socketRef.current = io('https://api2.onairos.uk', {
|
|
110
|
+
transports: ['websocket'],
|
|
111
|
+
autoConnect: false
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Socket event listeners
|
|
115
|
+
socketRef.current.on('connect', () => {
|
|
116
|
+
console.log('✅ Socket connected for training');
|
|
117
|
+
setSocketConnected(true);
|
|
118
|
+
const socketId = socketRef.current?.id;
|
|
119
|
+
if (socketId) {
|
|
120
|
+
startEnochTraining(socketId);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
socketRef.current.on('disconnect', () => {
|
|
125
|
+
console.log('❌ Socket disconnected');
|
|
126
|
+
setSocketConnected(false);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
socketRef.current.on('trainingCompleted', (data) => {
|
|
130
|
+
console.log('✅ Training Complete:', data);
|
|
131
|
+
setTrainingStatus('Running test inference...');
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
socketRef.current.on('inferenceCompleted', (data) => {
|
|
135
|
+
console.log('🧠 Inference Complete:', data);
|
|
136
|
+
setTrainingStatus('Uploading to S3...');
|
|
137
|
+
setUserTraits(data.traits);
|
|
138
|
+
setInferenceResults(data.inferenceResults);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
socketRef.current.on('modelStandby', (data) => {
|
|
142
|
+
console.log('🎉 All Complete:', data);
|
|
143
|
+
setIsTrainingComplete(true);
|
|
144
|
+
setTrainingStatus('Complete!');
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
socketRef.current.on('trainingUpdate', (data) => {
|
|
148
|
+
if (data.error) {
|
|
149
|
+
console.error('Training update error:', data.error);
|
|
150
|
+
setTrainingStatus(`Error: ${data.error}`);
|
|
151
|
+
setHasError(true);
|
|
152
|
+
} else if (data.progress) {
|
|
153
|
+
setTrainingStatus(data.status || 'Training in progress...');
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Connect to socket
|
|
158
|
+
socketRef.current.connect();
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
// Simulate socket connection and training for now
|
|
162
|
+
console.log('🔌 Simulating socket connection...');
|
|
163
|
+
setSocketConnected(true);
|
|
164
|
+
startEnochTraining('simulated-socket-id');
|
|
165
|
+
|
|
166
|
+
// Cleanup function
|
|
167
|
+
return () => {
|
|
168
|
+
if (socketRef.current) {
|
|
169
|
+
console.log('🔌 Disconnecting training socket...');
|
|
170
|
+
socketRef.current.disconnect();
|
|
171
|
+
socketRef.current = null;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}, [visible, userInfo]);
|
|
25
175
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
|
|
26
176
|
visible: visible,
|
|
27
177
|
transparent: true,
|
|
@@ -40,15 +190,17 @@ const TrainingModal = ({
|
|
|
40
190
|
style: styles.container
|
|
41
191
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
42
192
|
style: styles.content
|
|
43
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
193
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
194
|
+
source: require('../assets/images/onairos_logo.png'),
|
|
195
|
+
style: styles.onairosLogo,
|
|
196
|
+
resizeMode: "contain"
|
|
197
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
48
198
|
style: styles.title
|
|
49
199
|
}, "Training Your AI"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
50
200
|
style: styles.subtitle
|
|
51
|
-
}, "Creating your personalized model"), /*#__PURE__*/_react.default.createElement(_reactNative.
|
|
201
|
+
}, "Creating your personalized model"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
202
|
+
style: styles.statusText
|
|
203
|
+
}, trainingStatus), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
52
204
|
style: styles.progressContainer
|
|
53
205
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
54
206
|
style: styles.progressBar
|
|
@@ -67,14 +219,22 @@ const TrainingModal = ({
|
|
|
67
219
|
color: _constants.COLORS.primary
|
|
68
220
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
69
221
|
style: styles.loadingText
|
|
70
|
-
},
|
|
222
|
+
}, socketConnected ? 'Processing your data...' : 'Connecting to training server...')), hasError && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
223
|
+
style: styles.errorContainer
|
|
224
|
+
}, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
|
|
225
|
+
name: "error-outline",
|
|
226
|
+
size: 24,
|
|
227
|
+
color: "#FF6B6B"
|
|
228
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
229
|
+
style: styles.errorText
|
|
230
|
+
}, "Training encountered an error")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
71
231
|
style: styles.footer
|
|
72
232
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
73
233
|
style: styles.cancelButton,
|
|
74
234
|
onPress: onCancel
|
|
75
235
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
76
236
|
style: styles.cancelButtonText
|
|
77
|
-
}, "Cancel")), progress >= 1 && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
237
|
+
}, "Cancel")), (progress >= 1 || isTrainingComplete) && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
78
238
|
style: styles.completeButton,
|
|
79
239
|
onPress: onComplete
|
|
80
240
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
@@ -134,6 +294,11 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
134
294
|
textAlign: 'center',
|
|
135
295
|
marginBottom: 32
|
|
136
296
|
},
|
|
297
|
+
statusText: {
|
|
298
|
+
fontSize: 14,
|
|
299
|
+
color: _constants.COLORS.text.secondary,
|
|
300
|
+
marginBottom: 24
|
|
301
|
+
},
|
|
137
302
|
progressContainer: {
|
|
138
303
|
width: '100%',
|
|
139
304
|
marginBottom: 16
|
|
@@ -210,10 +375,15 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
210
375
|
justifyContent: 'center',
|
|
211
376
|
alignItems: 'center'
|
|
212
377
|
},
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
378
|
+
errorContainer: {
|
|
379
|
+
flexDirection: 'row',
|
|
380
|
+
alignItems: 'center',
|
|
381
|
+
marginBottom: 24
|
|
382
|
+
},
|
|
383
|
+
errorText: {
|
|
384
|
+
fontSize: 14,
|
|
385
|
+
color: '#FF6B6B',
|
|
386
|
+
marginLeft: 8
|
|
217
387
|
}
|
|
218
388
|
});
|
|
219
389
|
//# sourceMappingURL=TrainingModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_constants","e","__esModule","default","width","height","Dimensions","get","TrainingModal","visible","progress","eta","onCancel","onComplete","modelKey","username","progressPercentage","Math","round","createElement","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","TouchableWithoutFeedback","View","style","styles","modalOverlay","bottomSheet","handleContainer","handle","SafeAreaView","container","content","onairosLogo","Text","onairosLogoText","title","subtitle","progressContainer","progressBar","progressFill","progressText","etaText","loadingContainer","ActivityIndicator","size","color","COLORS","primary","loadingText","footer","TouchableOpacity","cancelButton","onPress","cancelButtonText","completeButton","completeButtonText","exports","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","borderTopLeftRadius","borderTopRightRadius","overflow","paddingTop","paddingBottom","borderRadius","padding","fontSize","fontWeight","marginTop","marginBottom","text","textAlign","secondary","border","flexDirection","marginLeft","borderTopWidth","borderTopColor","paddingHorizontal","paddingVertical","borderWidth","borderColor"],"sourceRoot":"..\\..\\..\\src","sources":["components/TrainingModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_MaterialIcons","_interopRequireDefault","_constants","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","width","height","Dimensions","TrainingModal","visible","progress","eta","onCancel","onComplete","modelKey","username","progressPercentage","Math","round","socketRef","useRef","socketConnected","setSocketConnected","useState","trainingStatus","setTrainingStatus","hasError","setHasError","isTrainingComplete","setIsTrainingComplete","userTraits","setUserTraits","inferenceResults","setInferenceResults","userToken","userInfo","email","id","name","startEnochTraining","socketId","Error","console","log","trainingData","userId","error","message","useEffect","current","disconnect","createElement","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","TouchableWithoutFeedback","View","style","styles","modalOverlay","bottomSheet","handleContainer","handle","SafeAreaView","container","content","Image","source","onairosLogo","resizeMode","Text","title","subtitle","statusText","progressContainer","progressBar","progressFill","progressText","etaText","loadingContainer","ActivityIndicator","size","color","COLORS","primary","loadingText","errorContainer","errorText","footer","TouchableOpacity","cancelButton","onPress","cancelButtonText","completeButton","completeButtonText","exports","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","borderTopLeftRadius","borderTopRightRadius","overflow","paddingTop","paddingBottom","borderRadius","padding","fontSize","fontWeight","marginTop","marginBottom","text","textAlign","secondary","border","flexDirection","marginLeft","borderTopWidth","borderTopColor","paddingHorizontal","paddingVertical","borderWidth","borderColor"],"sourceRoot":"..\\..\\..\\src","sources":["components/TrainingModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View, Text, StyleSheet, TouchableOpacity, ActivityIndicator, Dimensions, Modal, TouchableWithoutFeedback, SafeAreaView } from 'react-native';
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, TouchableOpacity, ActivityIndicator, Dimensions, Modal, TouchableWithoutFeedback, SafeAreaView, Image } from 'react-native';
|
|
3
|
+
import Icon from 'react-native-vector-icons/MaterialIcons';
|
|
3
4
|
import { COLORS } from '../constants';
|
|
4
5
|
const {
|
|
5
6
|
width,
|
|
@@ -15,6 +16,154 @@ export const TrainingModal = ({
|
|
|
15
16
|
username
|
|
16
17
|
}) => {
|
|
17
18
|
const progressPercentage = Math.round(progress * 100);
|
|
19
|
+
|
|
20
|
+
// Socket and training state
|
|
21
|
+
const socketRef = useRef(null);
|
|
22
|
+
const [socketConnected, setSocketConnected] = useState(false);
|
|
23
|
+
const [trainingStatus, setTrainingStatus] = useState('Initializing...');
|
|
24
|
+
const [hasError, setHasError] = useState(false);
|
|
25
|
+
const [isTrainingComplete, setIsTrainingComplete] = useState(false);
|
|
26
|
+
const [userTraits, setUserTraits] = useState(null);
|
|
27
|
+
const [inferenceResults, setInferenceResults] = useState(null);
|
|
28
|
+
|
|
29
|
+
// Mock user data for now - in real implementation this would come from props
|
|
30
|
+
const userToken = 'mock-token'; // TODO: Get from actual auth
|
|
31
|
+
const userInfo = {
|
|
32
|
+
username: username || 'mobile_user',
|
|
33
|
+
email: null,
|
|
34
|
+
id: null,
|
|
35
|
+
name: username || 'mobile_user'
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Start Enoch training via API
|
|
39
|
+
const startEnochTraining = async socketId => {
|
|
40
|
+
try {
|
|
41
|
+
setTrainingStatus('Starting training...');
|
|
42
|
+
if (!userToken) {
|
|
43
|
+
throw new Error('No authentication token available');
|
|
44
|
+
}
|
|
45
|
+
console.log('🚀 Starting Enoch training with socketId:', socketId);
|
|
46
|
+
|
|
47
|
+
// Prepare user data for training
|
|
48
|
+
const trainingData = {
|
|
49
|
+
socketId,
|
|
50
|
+
username: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.username) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) || username || 'mobile_user',
|
|
51
|
+
email: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.email) || null,
|
|
52
|
+
modelKey: modelKey || null,
|
|
53
|
+
userId: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.id) || null
|
|
54
|
+
};
|
|
55
|
+
console.log('📤 Sending training data:', trainingData);
|
|
56
|
+
|
|
57
|
+
// For now, simulate the API call since we don't have real tokens
|
|
58
|
+
// TODO: Uncomment when real authentication is available
|
|
59
|
+
/*
|
|
60
|
+
const response = await fetch('https://api2.onairos.uk/enoch/trainModel/mobile', {
|
|
61
|
+
method: 'POST',
|
|
62
|
+
headers: {
|
|
63
|
+
'Content-Type': 'application/json',
|
|
64
|
+
'Authorization': `Bearer ${userToken}`
|
|
65
|
+
},
|
|
66
|
+
body: JSON.stringify(trainingData)
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const result = await response.json();
|
|
70
|
+
|
|
71
|
+
if (result.success) {
|
|
72
|
+
console.log('🚀 Training Started:', result.message);
|
|
73
|
+
setTrainingStatus('Training model...');
|
|
74
|
+
} else {
|
|
75
|
+
console.error('Training start failed:', result.error);
|
|
76
|
+
setTrainingStatus(`Error: ${result.error}`);
|
|
77
|
+
setHasError(true);
|
|
78
|
+
}
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
// Simulate successful training start
|
|
82
|
+
console.log('🚀 Training Started (simulated)');
|
|
83
|
+
setTrainingStatus('Training model...');
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error('Training start error:', error);
|
|
86
|
+
setTrainingStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
87
|
+
setHasError(true);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Setup socket connection and training
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (!visible || !userInfo) return;
|
|
94
|
+
console.log('Setting up socket connection for training...');
|
|
95
|
+
console.log('🧑💻 User info available:', userInfo);
|
|
96
|
+
|
|
97
|
+
// For now, simulate the socket connection since we don't have real auth
|
|
98
|
+
// TODO: Uncomment when real authentication is available
|
|
99
|
+
/*
|
|
100
|
+
// Initialize socket connection
|
|
101
|
+
socketRef.current = io('https://api2.onairos.uk', {
|
|
102
|
+
transports: ['websocket'],
|
|
103
|
+
autoConnect: false
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Socket event listeners
|
|
107
|
+
socketRef.current.on('connect', () => {
|
|
108
|
+
console.log('✅ Socket connected for training');
|
|
109
|
+
setSocketConnected(true);
|
|
110
|
+
const socketId = socketRef.current?.id;
|
|
111
|
+
if (socketId) {
|
|
112
|
+
startEnochTraining(socketId);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
socketRef.current.on('disconnect', () => {
|
|
117
|
+
console.log('❌ Socket disconnected');
|
|
118
|
+
setSocketConnected(false);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
socketRef.current.on('trainingCompleted', (data) => {
|
|
122
|
+
console.log('✅ Training Complete:', data);
|
|
123
|
+
setTrainingStatus('Running test inference...');
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
socketRef.current.on('inferenceCompleted', (data) => {
|
|
127
|
+
console.log('🧠 Inference Complete:', data);
|
|
128
|
+
setTrainingStatus('Uploading to S3...');
|
|
129
|
+
setUserTraits(data.traits);
|
|
130
|
+
setInferenceResults(data.inferenceResults);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
socketRef.current.on('modelStandby', (data) => {
|
|
134
|
+
console.log('🎉 All Complete:', data);
|
|
135
|
+
setIsTrainingComplete(true);
|
|
136
|
+
setTrainingStatus('Complete!');
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
socketRef.current.on('trainingUpdate', (data) => {
|
|
140
|
+
if (data.error) {
|
|
141
|
+
console.error('Training update error:', data.error);
|
|
142
|
+
setTrainingStatus(`Error: ${data.error}`);
|
|
143
|
+
setHasError(true);
|
|
144
|
+
} else if (data.progress) {
|
|
145
|
+
setTrainingStatus(data.status || 'Training in progress...');
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Connect to socket
|
|
150
|
+
socketRef.current.connect();
|
|
151
|
+
*/
|
|
152
|
+
|
|
153
|
+
// Simulate socket connection and training for now
|
|
154
|
+
console.log('🔌 Simulating socket connection...');
|
|
155
|
+
setSocketConnected(true);
|
|
156
|
+
startEnochTraining('simulated-socket-id');
|
|
157
|
+
|
|
158
|
+
// Cleanup function
|
|
159
|
+
return () => {
|
|
160
|
+
if (socketRef.current) {
|
|
161
|
+
console.log('🔌 Disconnecting training socket...');
|
|
162
|
+
socketRef.current.disconnect();
|
|
163
|
+
socketRef.current = null;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}, [visible, userInfo]);
|
|
18
167
|
return /*#__PURE__*/React.createElement(Modal, {
|
|
19
168
|
visible: visible,
|
|
20
169
|
transparent: true,
|
|
@@ -33,15 +182,17 @@ export const TrainingModal = ({
|
|
|
33
182
|
style: styles.container
|
|
34
183
|
}, /*#__PURE__*/React.createElement(View, {
|
|
35
184
|
style: styles.content
|
|
36
|
-
}, /*#__PURE__*/React.createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
185
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
186
|
+
source: require('../assets/images/onairos_logo.png'),
|
|
187
|
+
style: styles.onairosLogo,
|
|
188
|
+
resizeMode: "contain"
|
|
189
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
41
190
|
style: styles.title
|
|
42
191
|
}, "Training Your AI"), /*#__PURE__*/React.createElement(Text, {
|
|
43
192
|
style: styles.subtitle
|
|
44
|
-
}, "Creating your personalized model"), /*#__PURE__*/React.createElement(
|
|
193
|
+
}, "Creating your personalized model"), /*#__PURE__*/React.createElement(Text, {
|
|
194
|
+
style: styles.statusText
|
|
195
|
+
}, trainingStatus), /*#__PURE__*/React.createElement(View, {
|
|
45
196
|
style: styles.progressContainer
|
|
46
197
|
}, /*#__PURE__*/React.createElement(View, {
|
|
47
198
|
style: styles.progressBar
|
|
@@ -60,14 +211,22 @@ export const TrainingModal = ({
|
|
|
60
211
|
color: COLORS.primary
|
|
61
212
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
62
213
|
style: styles.loadingText
|
|
63
|
-
},
|
|
214
|
+
}, socketConnected ? 'Processing your data...' : 'Connecting to training server...')), hasError && /*#__PURE__*/React.createElement(View, {
|
|
215
|
+
style: styles.errorContainer
|
|
216
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
217
|
+
name: "error-outline",
|
|
218
|
+
size: 24,
|
|
219
|
+
color: "#FF6B6B"
|
|
220
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
221
|
+
style: styles.errorText
|
|
222
|
+
}, "Training encountered an error")), /*#__PURE__*/React.createElement(View, {
|
|
64
223
|
style: styles.footer
|
|
65
224
|
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
66
225
|
style: styles.cancelButton,
|
|
67
226
|
onPress: onCancel
|
|
68
227
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
69
228
|
style: styles.cancelButtonText
|
|
70
|
-
}, "Cancel")), progress >= 1 && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
229
|
+
}, "Cancel")), (progress >= 1 || isTrainingComplete) && /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
71
230
|
style: styles.completeButton,
|
|
72
231
|
onPress: onComplete
|
|
73
232
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
@@ -126,6 +285,11 @@ const styles = StyleSheet.create({
|
|
|
126
285
|
textAlign: 'center',
|
|
127
286
|
marginBottom: 32
|
|
128
287
|
},
|
|
288
|
+
statusText: {
|
|
289
|
+
fontSize: 14,
|
|
290
|
+
color: COLORS.text.secondary,
|
|
291
|
+
marginBottom: 24
|
|
292
|
+
},
|
|
129
293
|
progressContainer: {
|
|
130
294
|
width: '100%',
|
|
131
295
|
marginBottom: 16
|
|
@@ -202,10 +366,15 @@ const styles = StyleSheet.create({
|
|
|
202
366
|
justifyContent: 'center',
|
|
203
367
|
alignItems: 'center'
|
|
204
368
|
},
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
369
|
+
errorContainer: {
|
|
370
|
+
flexDirection: 'row',
|
|
371
|
+
alignItems: 'center',
|
|
372
|
+
marginBottom: 24
|
|
373
|
+
},
|
|
374
|
+
errorText: {
|
|
375
|
+
fontSize: 14,
|
|
376
|
+
color: '#FF6B6B',
|
|
377
|
+
marginLeft: 8
|
|
209
378
|
}
|
|
210
379
|
});
|
|
211
380
|
//# sourceMappingURL=TrainingModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","Dimensions","Modal","TouchableWithoutFeedback","SafeAreaView","COLORS","width","height","get","TrainingModal","visible","progress","eta","onCancel","onComplete","modelKey","username","progressPercentage","Math","round","createElement","transparent","animationType","statusBarTranslucent","onRequestClose","style","styles","modalOverlay","bottomSheet","handleContainer","handle","container","content","onairosLogo","onairosLogoText","title","subtitle","progressContainer","progressBar","progressFill","progressText","etaText","loadingContainer","size","color","primary","loadingText","footer","cancelButton","onPress","cancelButtonText","completeButton","completeButtonText","create","flex","backgroundColor","justifyContent","alignItems","borderTopLeftRadius","borderTopRightRadius","overflow","paddingTop","paddingBottom","borderRadius","padding","fontSize","fontWeight","marginTop","marginBottom","text","textAlign","secondary","border","flexDirection","marginLeft","borderTopWidth","borderTopColor","paddingHorizontal","paddingVertical","borderWidth","borderColor"],"sourceRoot":"..\\..\\..\\src","sources":["components/TrainingModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","Dimensions","Modal","TouchableWithoutFeedback","SafeAreaView","Image","Icon","COLORS","width","height","get","TrainingModal","visible","progress","eta","onCancel","onComplete","modelKey","username","progressPercentage","Math","round","socketRef","socketConnected","setSocketConnected","trainingStatus","setTrainingStatus","hasError","setHasError","isTrainingComplete","setIsTrainingComplete","userTraits","setUserTraits","inferenceResults","setInferenceResults","userToken","userInfo","email","id","name","startEnochTraining","socketId","Error","console","log","trainingData","userId","error","message","current","disconnect","createElement","transparent","animationType","statusBarTranslucent","onRequestClose","style","styles","modalOverlay","bottomSheet","handleContainer","handle","container","content","source","require","onairosLogo","resizeMode","title","subtitle","statusText","progressContainer","progressBar","progressFill","progressText","etaText","loadingContainer","size","color","primary","loadingText","errorContainer","errorText","footer","cancelButton","onPress","cancelButtonText","completeButton","completeButtonText","create","flex","backgroundColor","justifyContent","alignItems","borderTopLeftRadius","borderTopRightRadius","overflow","paddingTop","paddingBottom","borderRadius","padding","fontSize","fontWeight","marginTop","marginBottom","text","textAlign","secondary","border","flexDirection","marginLeft","borderTopWidth","borderTopColor","paddingHorizontal","paddingVertical","borderWidth","borderColor"],"sourceRoot":"..\\..\\..\\src","sources":["components/TrainingModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrainingModal.d.ts","sourceRoot":"","sources":["../../../src/components/TrainingModal.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TrainingModal.d.ts","sourceRoot":"","sources":["../../../src/components/TrainingModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAiB3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0PtD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onairos/react-native",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.40",
|
|
4
4
|
"description": "Onairos React Native SDK for social media authentication and AI model training",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -74,7 +74,8 @@
|
|
|
74
74
|
"react-native-rsa-native": "^2.0.0",
|
|
75
75
|
"react-native-safe-area-context": "^4.0.0",
|
|
76
76
|
"react-native-vector-icons": "^9.0.0",
|
|
77
|
-
"react-native-webview": "^13.8.6"
|
|
77
|
+
"react-native-webview": "^13.8.6",
|
|
78
|
+
"socket.io-client": "^4.8.1"
|
|
78
79
|
},
|
|
79
80
|
"devDependencies": {
|
|
80
81
|
"@react-native-community/eslint-config": "^3.0.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
View,
|
|
4
4
|
Text,
|
|
@@ -10,8 +10,10 @@ import {
|
|
|
10
10
|
Animated,
|
|
11
11
|
TouchableWithoutFeedback,
|
|
12
12
|
SafeAreaView,
|
|
13
|
+
Image,
|
|
13
14
|
} from 'react-native';
|
|
14
15
|
import Icon from 'react-native-vector-icons/MaterialIcons';
|
|
16
|
+
import { io, Socket } from 'socket.io-client';
|
|
15
17
|
import { COLORS } from '../constants';
|
|
16
18
|
import type { TrainingModalProps } from '../types';
|
|
17
19
|
|
|
@@ -27,6 +29,159 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
|
|
|
27
29
|
username,
|
|
28
30
|
}) => {
|
|
29
31
|
const progressPercentage = Math.round(progress * 100);
|
|
32
|
+
|
|
33
|
+
// Socket and training state
|
|
34
|
+
const socketRef = useRef<Socket | null>(null);
|
|
35
|
+
const [socketConnected, setSocketConnected] = useState(false);
|
|
36
|
+
const [trainingStatus, setTrainingStatus] = useState('Initializing...');
|
|
37
|
+
const [hasError, setHasError] = useState(false);
|
|
38
|
+
const [isTrainingComplete, setIsTrainingComplete] = useState(false);
|
|
39
|
+
const [userTraits, setUserTraits] = useState<any>(null);
|
|
40
|
+
const [inferenceResults, setInferenceResults] = useState<any>(null);
|
|
41
|
+
|
|
42
|
+
// Mock user data for now - in real implementation this would come from props
|
|
43
|
+
const userToken = 'mock-token'; // TODO: Get from actual auth
|
|
44
|
+
const userInfo = {
|
|
45
|
+
username: username || 'mobile_user',
|
|
46
|
+
email: null,
|
|
47
|
+
id: null,
|
|
48
|
+
name: username || 'mobile_user'
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Start Enoch training via API
|
|
52
|
+
const startEnochTraining = async (socketId: string) => {
|
|
53
|
+
try {
|
|
54
|
+
setTrainingStatus('Starting training...');
|
|
55
|
+
|
|
56
|
+
if (!userToken) {
|
|
57
|
+
throw new Error('No authentication token available');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
console.log('🚀 Starting Enoch training with socketId:', socketId);
|
|
61
|
+
|
|
62
|
+
// Prepare user data for training
|
|
63
|
+
const trainingData = {
|
|
64
|
+
socketId,
|
|
65
|
+
username: userInfo?.username || userInfo?.name || username || 'mobile_user',
|
|
66
|
+
email: userInfo?.email || null,
|
|
67
|
+
modelKey: modelKey || null,
|
|
68
|
+
userId: userInfo?.id || null
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
console.log('📤 Sending training data:', trainingData);
|
|
72
|
+
|
|
73
|
+
// For now, simulate the API call since we don't have real tokens
|
|
74
|
+
// TODO: Uncomment when real authentication is available
|
|
75
|
+
/*
|
|
76
|
+
const response = await fetch('https://api2.onairos.uk/enoch/trainModel/mobile', {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: {
|
|
79
|
+
'Content-Type': 'application/json',
|
|
80
|
+
'Authorization': `Bearer ${userToken}`
|
|
81
|
+
},
|
|
82
|
+
body: JSON.stringify(trainingData)
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const result = await response.json();
|
|
86
|
+
|
|
87
|
+
if (result.success) {
|
|
88
|
+
console.log('🚀 Training Started:', result.message);
|
|
89
|
+
setTrainingStatus('Training model...');
|
|
90
|
+
} else {
|
|
91
|
+
console.error('Training start failed:', result.error);
|
|
92
|
+
setTrainingStatus(`Error: ${result.error}`);
|
|
93
|
+
setHasError(true);
|
|
94
|
+
}
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
// Simulate successful training start
|
|
98
|
+
console.log('🚀 Training Started (simulated)');
|
|
99
|
+
setTrainingStatus('Training model...');
|
|
100
|
+
|
|
101
|
+
} catch (error) {
|
|
102
|
+
console.error('Training start error:', error);
|
|
103
|
+
setTrainingStatus(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
104
|
+
setHasError(true);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Setup socket connection and training
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (!visible || !userInfo) return;
|
|
111
|
+
|
|
112
|
+
console.log('Setting up socket connection for training...');
|
|
113
|
+
console.log('🧑💻 User info available:', userInfo);
|
|
114
|
+
|
|
115
|
+
// For now, simulate the socket connection since we don't have real auth
|
|
116
|
+
// TODO: Uncomment when real authentication is available
|
|
117
|
+
/*
|
|
118
|
+
// Initialize socket connection
|
|
119
|
+
socketRef.current = io('https://api2.onairos.uk', {
|
|
120
|
+
transports: ['websocket'],
|
|
121
|
+
autoConnect: false
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
// Socket event listeners
|
|
125
|
+
socketRef.current.on('connect', () => {
|
|
126
|
+
console.log('✅ Socket connected for training');
|
|
127
|
+
setSocketConnected(true);
|
|
128
|
+
const socketId = socketRef.current?.id;
|
|
129
|
+
if (socketId) {
|
|
130
|
+
startEnochTraining(socketId);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
socketRef.current.on('disconnect', () => {
|
|
135
|
+
console.log('❌ Socket disconnected');
|
|
136
|
+
setSocketConnected(false);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
socketRef.current.on('trainingCompleted', (data) => {
|
|
140
|
+
console.log('✅ Training Complete:', data);
|
|
141
|
+
setTrainingStatus('Running test inference...');
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
socketRef.current.on('inferenceCompleted', (data) => {
|
|
145
|
+
console.log('🧠 Inference Complete:', data);
|
|
146
|
+
setTrainingStatus('Uploading to S3...');
|
|
147
|
+
setUserTraits(data.traits);
|
|
148
|
+
setInferenceResults(data.inferenceResults);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
socketRef.current.on('modelStandby', (data) => {
|
|
152
|
+
console.log('🎉 All Complete:', data);
|
|
153
|
+
setIsTrainingComplete(true);
|
|
154
|
+
setTrainingStatus('Complete!');
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
socketRef.current.on('trainingUpdate', (data) => {
|
|
158
|
+
if (data.error) {
|
|
159
|
+
console.error('Training update error:', data.error);
|
|
160
|
+
setTrainingStatus(`Error: ${data.error}`);
|
|
161
|
+
setHasError(true);
|
|
162
|
+
} else if (data.progress) {
|
|
163
|
+
setTrainingStatus(data.status || 'Training in progress...');
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Connect to socket
|
|
168
|
+
socketRef.current.connect();
|
|
169
|
+
*/
|
|
170
|
+
|
|
171
|
+
// Simulate socket connection and training for now
|
|
172
|
+
console.log('🔌 Simulating socket connection...');
|
|
173
|
+
setSocketConnected(true);
|
|
174
|
+
startEnochTraining('simulated-socket-id');
|
|
175
|
+
|
|
176
|
+
// Cleanup function
|
|
177
|
+
return () => {
|
|
178
|
+
if (socketRef.current) {
|
|
179
|
+
console.log('🔌 Disconnecting training socket...');
|
|
180
|
+
socketRef.current.disconnect();
|
|
181
|
+
socketRef.current = null;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
}, [visible, userInfo]);
|
|
30
185
|
|
|
31
186
|
return (
|
|
32
187
|
<Modal
|
|
@@ -46,14 +201,20 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
|
|
|
46
201
|
|
|
47
202
|
<SafeAreaView style={styles.container}>
|
|
48
203
|
<View style={styles.content}>
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
204
|
+
<Image
|
|
205
|
+
source={require('../assets/images/onairos_logo.png')}
|
|
206
|
+
style={styles.onairosLogo}
|
|
207
|
+
resizeMode="contain"
|
|
208
|
+
/>
|
|
52
209
|
|
|
53
210
|
<Text style={styles.title}>Training Your AI</Text>
|
|
54
211
|
<Text style={styles.subtitle}>
|
|
55
212
|
Creating your personalized model
|
|
56
213
|
</Text>
|
|
214
|
+
|
|
215
|
+
<Text style={styles.statusText}>
|
|
216
|
+
{trainingStatus}
|
|
217
|
+
</Text>
|
|
57
218
|
|
|
58
219
|
<View style={styles.progressContainer}>
|
|
59
220
|
<View style={styles.progressBar}>
|
|
@@ -71,8 +232,17 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
|
|
|
71
232
|
|
|
72
233
|
<View style={styles.loadingContainer}>
|
|
73
234
|
<ActivityIndicator size="small" color={COLORS.primary} />
|
|
74
|
-
<Text style={styles.loadingText}>
|
|
235
|
+
<Text style={styles.loadingText}>
|
|
236
|
+
{socketConnected ? 'Processing your data...' : 'Connecting to training server...'}
|
|
237
|
+
</Text>
|
|
75
238
|
</View>
|
|
239
|
+
|
|
240
|
+
{hasError && (
|
|
241
|
+
<View style={styles.errorContainer}>
|
|
242
|
+
<Icon name="error-outline" size={24} color="#FF6B6B" />
|
|
243
|
+
<Text style={styles.errorText}>Training encountered an error</Text>
|
|
244
|
+
</View>
|
|
245
|
+
)}
|
|
76
246
|
|
|
77
247
|
<View style={styles.footer}>
|
|
78
248
|
<TouchableOpacity
|
|
@@ -82,7 +252,7 @@ export const TrainingModal: React.FC<TrainingModalProps> = ({
|
|
|
82
252
|
<Text style={styles.cancelButtonText}>Cancel</Text>
|
|
83
253
|
</TouchableOpacity>
|
|
84
254
|
|
|
85
|
-
{progress >= 1 && (
|
|
255
|
+
{(progress >= 1 || isTrainingComplete) && (
|
|
86
256
|
<TouchableOpacity
|
|
87
257
|
style={styles.completeButton}
|
|
88
258
|
onPress={onComplete}
|
|
@@ -153,6 +323,11 @@ const styles = StyleSheet.create({
|
|
|
153
323
|
textAlign: 'center',
|
|
154
324
|
marginBottom: 32,
|
|
155
325
|
},
|
|
326
|
+
statusText: {
|
|
327
|
+
fontSize: 14,
|
|
328
|
+
color: COLORS.text.secondary,
|
|
329
|
+
marginBottom: 24,
|
|
330
|
+
},
|
|
156
331
|
progressContainer: {
|
|
157
332
|
width: '100%',
|
|
158
333
|
marginBottom: 16,
|
|
@@ -229,9 +404,14 @@ const styles = StyleSheet.create({
|
|
|
229
404
|
justifyContent: 'center',
|
|
230
405
|
alignItems: 'center',
|
|
231
406
|
},
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
407
|
+
errorContainer: {
|
|
408
|
+
flexDirection: 'row',
|
|
409
|
+
alignItems: 'center',
|
|
410
|
+
marginBottom: 24,
|
|
411
|
+
},
|
|
412
|
+
errorText: {
|
|
413
|
+
fontSize: 14,
|
|
414
|
+
color: '#FF6B6B',
|
|
415
|
+
marginLeft: 8,
|
|
236
416
|
},
|
|
237
417
|
});
|