@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.
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TrainingModal = void 0;
7
- var _react = _interopRequireDefault(require("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.View, {
44
- style: styles.onairosLogo
45
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
46
- style: styles.onairosLogoText
47
- }, "O")), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
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.View, {
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
- }, "Processing your data...")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
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
- onairosLogoText: {
214
- fontSize: 24,
215
- fontWeight: '600',
216
- color: '#fff'
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(View, {
37
- style: styles.onairosLogo
38
- }, /*#__PURE__*/React.createElement(Text, {
39
- style: styles.onairosLogoText
40
- }, "O")), /*#__PURE__*/React.createElement(Text, {
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(View, {
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
- }, "Processing your data...")), /*#__PURE__*/React.createElement(View, {
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
- onairosLogoText: {
206
- fontSize: 24,
207
- fontWeight: '600',
208
- color: '#fff'
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":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,gBAAgB,EAChBC,iBAAiB,EACjBC,UAAU,EACVC,KAAK,EAELC,wBAAwB,EACxBC,YAAY,EACZC,KAAK,QACA,cAAc;AACrB,OAAOC,IAAI,MAAM,yCAAyC;AAE1D,SAASC,MAAM,QAAQ,cAAc;AAGrC,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGR,UAAU,CAACS,GAAG,CAAC,QAAQ,CAAC;AAElD,OAAO,MAAMC,aAA2C,GAAGA,CAAC;EAC1DC,OAAO;EACPC,QAAQ;EACRC,GAAG;EACHC,QAAQ;EACRC,UAAU;EACVC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAMC,kBAAkB,GAAGC,IAAI,CAACC,KAAK,CAACR,QAAQ,GAAG,GAAG,CAAC;;EAErD;EACA,MAAMS,SAAS,GAAG5B,MAAM,CAAgB,IAAI,CAAC;EAC7C,MAAM,CAAC6B,eAAe,EAAEC,kBAAkB,CAAC,GAAG7B,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAM,CAAC8B,cAAc,EAAEC,iBAAiB,CAAC,GAAG/B,QAAQ,CAAC,iBAAiB,CAAC;EACvE,MAAM,CAACgC,QAAQ,EAAEC,WAAW,CAAC,GAAGjC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAM,CAACkC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGnC,QAAQ,CAAC,KAAK,CAAC;EACnE,MAAM,CAACoC,UAAU,EAAEC,aAAa,CAAC,GAAGrC,QAAQ,CAAM,IAAI,CAAC;EACvD,MAAM,CAACsC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGvC,QAAQ,CAAM,IAAI,CAAC;;EAEnE;EACA,MAAMwC,SAAS,GAAG,YAAY,CAAC,CAAC;EAChC,MAAMC,QAAQ,GAAG;IACflB,QAAQ,EAAEA,QAAQ,IAAI,aAAa;IACnCmB,KAAK,EAAE,IAAI;IACXC,EAAE,EAAE,IAAI;IACRC,IAAI,EAAErB,QAAQ,IAAI;EACpB,CAAC;;EAED;EACA,MAAMsB,kBAAkB,GAAG,MAAOC,QAAgB,IAAK;IACrD,IAAI;MACFf,iBAAiB,CAAC,sBAAsB,CAAC;MAEzC,IAAI,CAACS,SAAS,EAAE;QACd,MAAM,IAAIO,KAAK,CAAC,mCAAmC,CAAC;MACtD;MAEAC,OAAO,CAACC,GAAG,CAAC,2CAA2C,EAAEH,QAAQ,CAAC;;MAElE;MACA,MAAMI,YAAY,GAAG;QACnBJ,QAAQ;QACRvB,QAAQ,EAAE,CAAAkB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAElB,QAAQ,MAAIkB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,IAAI,KAAIrB,QAAQ,IAAI,aAAa;QAC3EmB,KAAK,EAAE,CAAAD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,KAAK,KAAI,IAAI;QAC9BpB,QAAQ,EAAEA,QAAQ,IAAI,IAAI;QAC1B6B,MAAM,EAAE,CAAAV,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,EAAE,KAAI;MAC1B,CAAC;MAEDK,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAEC,YAAY,CAAC;;MAEtD;MACA;MACA;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEM;MACAF,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;MAC9ClB,iBAAiB,CAAC,mBAAmB,CAAC;IAExC,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdJ,OAAO,CAACI,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7CrB,iBAAiB,CAAC,UAAUqB,KAAK,YAAYL,KAAK,GAAGK,KAAK,CAACC,OAAO,GAAG,eAAe,EAAE,CAAC;MACvFpB,WAAW,CAAC,IAAI,CAAC;IACnB;EACF,CAAC;;EAED;EACAnC,SAAS,CAAC,MAAM;IACd,IAAI,CAACmB,OAAO,IAAI,CAACwB,QAAQ,EAAE;IAE3BO,OAAO,CAACC,GAAG,CAAC,8CAA8C,CAAC;IAC3DD,OAAO,CAACC,GAAG,CAAC,4BAA4B,EAAER,QAAQ,CAAC;;IAEnD;IACA;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEI;IACAO,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC;IACjDpB,kBAAkB,CAAC,IAAI,CAAC;IACxBgB,kBAAkB,CAAC,qBAAqB,CAAC;;IAEzC;IACA,OAAO,MAAM;MACX,IAAIlB,SAAS,CAAC2B,OAAO,EAAE;QACrBN,OAAO,CAACC,GAAG,CAAC,qCAAqC,CAAC;QAClDtB,SAAS,CAAC2B,OAAO,CAACC,UAAU,CAAC,CAAC;QAC9B5B,SAAS,CAAC2B,OAAO,GAAG,IAAI;MAC1B;IACF,CAAC;EACH,CAAC,EAAE,CAACrC,OAAO,EAAEwB,QAAQ,CAAC,CAAC;EAEvB,oBACE5C,KAAA,CAAA2D,aAAA,CAACjD,KAAK;IACJU,OAAO,EAAEA,OAAQ;IACjBwC,WAAW;IACXC,aAAa,EAAC,MAAM;IACpBC,oBAAoB;IACpBC,cAAc,EAAExC;EAAS,gBAEzBvB,KAAA,CAAA2D,aAAA,CAAChD,wBAAwB,qBACvBX,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACC;EAAa,gBAC/BlE,KAAA,CAAA2D,aAAA,CAAChD,wBAAwB,qBACvBX,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACE;EAAY,gBAC9BnE,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACG;EAAgB,gBAClCpE,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACI;EAAO,CAAE,CACzB,CAAC,eAEPrE,KAAA,CAAA2D,aAAA,CAAC/C,YAAY;IAACoD,KAAK,EAAEC,MAAM,CAACK;EAAU,gBACpCtE,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACM;EAAQ,gBAC1BvE,KAAA,CAAA2D,aAAA,CAAC9C,KAAK;IACJ2D,MAAM,EAAEC,OAAO,CAAC,mCAAmC,CAAE;IACrDT,KAAK,EAAEC,MAAM,CAACS,WAAY;IAC1BC,UAAU,EAAC;EAAS,CACrB,CAAC,eAEF3E,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACW;EAAM,GAAC,kBAAsB,CAAC,eAClD5E,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACY;EAAS,GAAC,kCAExB,CAAC,eAEP7E,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACa;EAAW,GAC5B7C,cACG,CAAC,eAEPjC,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACc;EAAkB,gBACpC/E,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACe;EAAY,gBAC9BhF,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IACH4D,KAAK,EAAE,CACLC,MAAM,CAACgB,YAAY,EACnB;MAAEjE,KAAK,EAAE,GAAGW,kBAAkB;IAAI,CAAC;EACnC,CACH,CACG,CAAC,eACP3B,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACiB;EAAa,GAAEvD,kBAAkB,EAAC,GAAO,CACzD,CAAC,eAEP3B,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACkB;EAAQ,GAAC,4BAA0B,EAAC7D,GAAU,CAAC,eAEnEtB,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACmB;EAAiB,gBACnCpF,KAAA,CAAA2D,aAAA,CAACnD,iBAAiB;IAAC6E,IAAI,EAAC,OAAO;IAACC,KAAK,EAAEvE,MAAM,CAACwE;EAAQ,CAAE,CAAC,eACzDvF,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACuB;EAAY,GAC7BzD,eAAe,GAAG,yBAAyB,GAAG,kCAC3C,CACF,CAAC,EAENI,QAAQ,iBACPnC,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAACwB;EAAe,gBACjCzF,KAAA,CAAA2D,aAAA,CAAC7C,IAAI;IAACiC,IAAI,EAAC,eAAe;IAACsC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAS,CAAE,CAAC,eACvDtF,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAACyB;EAAU,GAAC,+BAAmC,CAC9D,CACP,eAED1F,KAAA,CAAA2D,aAAA,CAACvD,IAAI;IAAC4D,KAAK,EAAEC,MAAM,CAAC0B;EAAO,gBACzB3F,KAAA,CAAA2D,aAAA,CAACpD,gBAAgB;IACfyD,KAAK,EAAEC,MAAM,CAAC2B,YAAa;IAC3BC,OAAO,EAAEtE;EAAS,gBAElBvB,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAAC6B;EAAiB,GAAC,QAAY,CAClC,CAAC,EAElB,CAACzE,QAAQ,IAAI,CAAC,IAAIgB,kBAAkB,kBACnCrC,KAAA,CAAA2D,aAAA,CAACpD,gBAAgB;IACfyD,KAAK,EAAEC,MAAM,CAAC8B,cAAe;IAC7BF,OAAO,EAAErE;EAAW,gBAEpBxB,KAAA,CAAA2D,aAAA,CAACtD,IAAI;IAAC2D,KAAK,EAAEC,MAAM,CAAC+B;EAAmB,GAAC,UAAc,CACtC,CAEhB,CACF,CACM,CACV,CACkB,CACtB,CACkB,CACrB,CAAC;AAEZ,CAAC;AAED,MAAM/B,MAAM,GAAG3D,UAAU,CAAC2F,MAAM,CAAC;EAC/B/B,YAAY,EAAE;IACZgC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,oBAAoB;IACrCC,cAAc,EAAE,UAAU;IAC1BC,UAAU,EAAE;EACd,CAAC;EACDlC,WAAW,EAAE;IACXgC,eAAe,EAAE,MAAM;IACvBnF,KAAK,EAAEA,KAAK;IACZC,MAAM,EAAEA,MAAM,GAAG,GAAG;IACpBqF,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,QAAQ,EAAE;EACZ,CAAC;EACDpC,eAAe,EAAE;IACfpD,KAAK,EAAE,MAAM;IACbqF,UAAU,EAAE,QAAQ;IACpBI,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE;EACjB,CAAC;EACDrC,MAAM,EAAE;IACNrD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,CAAC;IACT0F,YAAY,EAAE,CAAC;IACfR,eAAe,EAAE;EACnB,CAAC;EACD7B,SAAS,EAAE;IACT4B,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACD5B,OAAO,EAAE;IACP2B,IAAI,EAAE,CAAC;IACPlF,KAAK,EAAE,MAAM;IACbqF,UAAU,EAAE,QAAQ;IACpBD,cAAc,EAAE,QAAQ;IACxBQ,OAAO,EAAE;EACX,CAAC;EACDhC,KAAK,EAAE;IACLiC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE,CAAC;IACf1B,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAAC1B,OAAO;IAC1B2B,SAAS,EAAE;EACb,CAAC;EACDrC,QAAQ,EAAE;IACRgC,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAACE,SAAS;IAC5BD,SAAS,EAAE,QAAQ;IACnBF,YAAY,EAAE;EAChB,CAAC;EACDlC,UAAU,EAAE;IACV+B,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAACE,SAAS;IAC5BH,YAAY,EAAE;EAChB,CAAC;EACDjC,iBAAiB,EAAE;IACjB/D,KAAK,EAAE,MAAM;IACbgG,YAAY,EAAE;EAChB,CAAC;EACDhC,WAAW,EAAE;IACX/D,MAAM,EAAE,CAAC;IACTkF,eAAe,EAAEpF,MAAM,CAACqG,MAAM;IAC9BT,YAAY,EAAE,CAAC;IACfH,QAAQ,EAAE;EACZ,CAAC;EACDvB,YAAY,EAAE;IACZhE,MAAM,EAAE,MAAM;IACdkF,eAAe,EAAEpF,MAAM,CAACwE,OAAO;IAC/BoB,YAAY,EAAE;EAChB,CAAC;EACDzB,YAAY,EAAE;IACZ2B,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAACE,SAAS;IAC5BD,SAAS,EAAE,QAAQ;IACnBH,SAAS,EAAE;EACb,CAAC;EACD5B,OAAO,EAAE;IACP0B,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAACE,SAAS;IAC5BH,YAAY,EAAE;EAChB,CAAC;EACD5B,gBAAgB,EAAE;IAChBiC,aAAa,EAAE,KAAK;IACpBhB,UAAU,EAAE,QAAQ;IACpBW,YAAY,EAAE;EAChB,CAAC;EACDxB,WAAW,EAAE;IACXqB,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAEvE,MAAM,CAACkG,IAAI,CAACE,SAAS;IAC5BG,UAAU,EAAE;EACd,CAAC;EACD3B,MAAM,EAAE;IACN0B,aAAa,EAAE,KAAK;IACpBhB,UAAU,EAAE,QAAQ;IACpBD,cAAc,EAAE,eAAe;IAC/BpF,KAAK,EAAE,MAAM;IACbuG,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE,MAAM;IACtBf,UAAU,EAAE,EAAE;IACdgB,iBAAiB,EAAE,EAAE;IACrBf,aAAa,EAAE;EACjB,CAAC;EACDd,YAAY,EAAE;IACZ8B,eAAe,EAAE,CAAC;IAClBD,iBAAiB,EAAE;EACrB,CAAC;EACD3B,gBAAgB,EAAE;IAChBe,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAE;EACT,CAAC;EACDS,cAAc,EAAE;IACd2B,eAAe,EAAE,EAAE;IACnBD,iBAAiB,EAAE,EAAE;IACrBd,YAAY,EAAE,EAAE;IAChBR,eAAe,EAAE,MAAM;IACvBwB,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACD5B,kBAAkB,EAAE;IAClBa,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBxB,KAAK,EAAE;EACT,CAAC;EACDZ,WAAW,EAAE;IACX1D,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACV0F,YAAY,EAAE,EAAE;IAChBR,eAAe,EAAEpF,MAAM,CAACwE,OAAO;IAC/Ba,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDZ,cAAc,EAAE;IACd4B,aAAa,EAAE,KAAK;IACpBhB,UAAU,EAAE,QAAQ;IACpBW,YAAY,EAAE;EAChB,CAAC;EACDtB,SAAS,EAAE;IACTmB,QAAQ,EAAE,EAAE;IACZvB,KAAK,EAAE,SAAS;IAChBgC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrainingModal.d.ts","sourceRoot":"","sources":["../../../src/components/TrainingModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkFtD,CAAC"}
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.39",
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
- <View style={styles.onairosLogo}>
50
- <Text style={styles.onairosLogoText}>O</Text>
51
- </View>
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}>Processing your data...</Text>
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
- onairosLogoText: {
233
- fontSize: 24,
234
- fontWeight: '600',
235
- color: '#fff',
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
  });