@onairos/react-native 3.0.18 → 3.0.20

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 (37) hide show
  1. package/lib/commonjs/assets/images/email.png +0 -0
  2. package/lib/commonjs/components/Overlay.js +13 -0
  3. package/lib/commonjs/components/Overlay.js.map +1 -1
  4. package/lib/commonjs/components/PinInput.js +70 -11
  5. package/lib/commonjs/components/PinInput.js.map +1 -1
  6. package/lib/commonjs/components/TrainingModal.js +91 -14
  7. package/lib/commonjs/components/TrainingModal.js.map +1 -1
  8. package/lib/commonjs/components/UniversalOnboarding.js +19 -7
  9. package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
  10. package/lib/module/assets/images/email.png +0 -0
  11. package/lib/module/components/Overlay.js +13 -0
  12. package/lib/module/components/Overlay.js.map +1 -1
  13. package/lib/module/components/PinInput.js +71 -12
  14. package/lib/module/components/PinInput.js.map +1 -1
  15. package/lib/module/components/TrainingModal.js +92 -15
  16. package/lib/module/components/TrainingModal.js.map +1 -1
  17. package/lib/module/components/UniversalOnboarding.js +19 -7
  18. package/lib/module/components/UniversalOnboarding.js.map +1 -1
  19. package/lib/typescript/components/Overlay.d.ts.map +1 -1
  20. package/lib/typescript/components/PinInput.d.ts.map +1 -1
  21. package/lib/typescript/components/TrainingModal.d.ts.map +1 -1
  22. package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
  23. package/lib/typescript/types/index.d.ts +5 -0
  24. package/lib/typescript/types/index.d.ts.map +1 -1
  25. package/lib/typescript/types.d.ts +7 -7
  26. package/lib/typescript/types.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/src/assets/images/email.png +0 -0
  29. package/src/components/Overlay.tsx +4 -0
  30. package/src/components/PinInput.tsx +250 -189
  31. package/src/components/TrainingModal.tsx +222 -132
  32. package/src/components/UniversalOnboarding.tsx +8 -5
  33. package/src/types/index.ts +150 -145
  34. package/src/types.ts +149 -149
  35. package/lib/commonjs/components/Overlay.tsx.new +0 -516
  36. package/lib/module/components/Overlay.tsx.new +0 -516
  37. package/src/components/Overlay.tsx.new +0 -516
@@ -65,11 +65,16 @@ export interface PinInputProps {
65
65
  minLength?: number;
66
66
  requireSpecialChar?: boolean;
67
67
  requireNumber?: boolean;
68
+ onBack?: () => void;
68
69
  }
69
70
  export interface TrainingModalProps {
71
+ visible: boolean;
70
72
  progress: number;
71
73
  eta: string;
72
74
  onCancel: () => void;
75
+ onComplete?: () => void;
76
+ modelKey?: string;
77
+ username?: string;
73
78
  }
74
79
  export interface OAuthWebViewProps {
75
80
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -74,16 +74,16 @@ export interface PinInputProps {
74
74
  minLength?: number;
75
75
  requireSpecialChar?: boolean;
76
76
  requireNumber?: boolean;
77
+ onBack?: () => void;
77
78
  }
78
79
  export interface TrainingModalProps {
79
80
  visible: boolean;
80
- onClose: () => void;
81
- onComplete: () => void;
82
- modelKey: string;
83
- username: string;
84
- progress?: number;
85
- eta?: string;
86
- onCancel?: () => void;
81
+ progress: number;
82
+ eta: string;
83
+ onCancel: () => void;
84
+ onComplete?: () => void;
85
+ modelKey?: string;
86
+ username?: string;
87
87
  }
88
88
  export interface OAuthWebViewProps {
89
89
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "3.0.18",
3
+ "version": "3.0.20",
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",
Binary file
@@ -48,6 +48,9 @@ export const Overlay: React.FC<OverlayProps> = ({
48
48
  platforms = [
49
49
  { id: 'instagram', name: 'Instagram', icon: require('../assets/images/instagram.png') },
50
50
  { id: 'youtube', name: 'YouTube', icon: require('../assets/images/youtube.png') },
51
+ { id: 'reddit', name: 'Reddit', icon: require('../assets/images/reddit.png') },
52
+ { id: 'pinterest', name: 'Pinterest', icon: require('../assets/images/pinterest.png') },
53
+ { id: 'email', name: 'Email', icon: require('../assets/images/email.png') },
51
54
  ],
52
55
  }) => {
53
56
  const [selections, setSelections] = useState<{ [key: string]: boolean }>({});
@@ -338,6 +341,7 @@ const styles = StyleSheet.create({
338
341
  borderTopLeftRadius: 24,
339
342
  borderTopRightRadius: 24,
340
343
  width: SCREEN_WIDTH,
344
+ height: SCREEN_HEIGHT * 0.6,
341
345
  overflow: 'hidden',
342
346
  },
343
347
  handleContainer: {
@@ -1,189 +1,250 @@
1
- import React, { useState, useCallback } from 'react';
2
- import {
3
- View,
4
- Text,
5
- StyleSheet,
6
- TextInput,
7
- TouchableOpacity,
8
- Keyboard,
9
- } from 'react-native';
10
- import Icon from 'react-native-vector-icons/MaterialIcons';
11
- import { COLORS } from '../constants';
12
- import type { PinInputProps } from '../types';
13
-
14
- export const PinInput: React.FC<PinInputProps> = ({
15
- onSubmit,
16
- minLength = 8,
17
- requireSpecialChar = true,
18
- requireNumber = true,
19
- }) => {
20
- const [pin, setPin] = useState('');
21
- const [error, setError] = useState<string | null>(null);
22
- const [showPin, setShowPin] = useState(false);
23
-
24
- const validatePin = useCallback((value: string) => {
25
- if (value.length < minLength) {
26
- return `PIN must be at least ${minLength} characters`;
27
- }
28
- if (requireSpecialChar && !/[!@#$%^&*(),.?":{}|<>]/.test(value)) {
29
- return 'PIN must include a special character';
30
- }
31
- if (requireNumber && !/\d/.test(value)) {
32
- return 'PIN must include a number';
33
- }
34
- return null;
35
- }, [minLength, requireSpecialChar, requireNumber]);
36
-
37
- const handleSubmit = useCallback(() => {
38
- const validationError = validatePin(pin);
39
- if (validationError) {
40
- setError(validationError);
41
- return;
42
- }
43
- onSubmit(pin);
44
- }, [pin, validatePin, onSubmit]);
45
-
46
- const handlePinChange = useCallback((value: string) => {
47
- setPin(value);
48
- setError(null);
49
- }, []);
50
-
51
- return (
52
- <View style={styles.container}>
53
- <Text style={styles.title}>Create your PIN</Text>
54
- <Text style={styles.subtitle}>
55
- This PIN will be used to secure your account
56
- </Text>
57
-
58
- <View style={styles.inputContainer}>
59
- <TextInput
60
- style={styles.input}
61
- value={pin}
62
- onChangeText={handlePinChange}
63
- secureTextEntry={!showPin}
64
- placeholder="Enter PIN"
65
- keyboardType="numeric"
66
- maxLength={20}
67
- autoCapitalize="none"
68
- autoCorrect={false}
69
- />
70
- <TouchableOpacity
71
- style={styles.visibilityButton}
72
- onPress={() => setShowPin(!showPin)}
73
- >
74
- <Icon
75
- name={showPin ? 'visibility-off' : 'visibility'}
76
- size={24}
77
- color={COLORS.text.secondary}
78
- />
79
- </TouchableOpacity>
80
- </View>
81
-
82
- {error && <Text style={styles.error}>{error}</Text>}
83
-
84
- <View style={styles.requirements}>
85
- <Text style={styles.requirementTitle}>PIN Requirements:</Text>
86
- <Text style={[styles.requirement, pin.length >= minLength && styles.requirementMet]}>
87
- • At least {minLength} characters
88
- </Text>
89
- {requireSpecialChar && (
90
- <Text
91
- style={[
92
- styles.requirement,
93
- /[!@#$%^&*(),.?":{}|<>]/.test(pin) && styles.requirementMet,
94
- ]}
95
- >
96
- • Include a special character
97
- </Text>
98
- )}
99
- {requireNumber && (
100
- <Text
101
- style={[
102
- styles.requirement,
103
- /\d/.test(pin) && styles.requirementMet,
104
- ]}
105
- >
106
- Include a number
107
- </Text>
108
- )}
109
- </View>
110
-
111
- <TouchableOpacity
112
- style={[styles.submitButton, !pin && styles.submitButtonDisabled]}
113
- onPress={handleSubmit}
114
- disabled={!pin}
115
- >
116
- <Text style={styles.submitButtonText}>Continue</Text>
117
- </TouchableOpacity>
118
- </View>
119
- );
120
- };
121
-
122
- const styles = StyleSheet.create({
123
- container: {
124
- flex: 1,
125
- padding: 16,
126
- },
127
- title: {
128
- fontSize: 20,
129
- fontWeight: '600',
130
- marginBottom: 8,
131
- color: COLORS.text.primary,
132
- },
133
- subtitle: {
134
- fontSize: 14,
135
- color: COLORS.text.secondary,
136
- marginBottom: 24,
137
- },
138
- inputContainer: {
139
- flexDirection: 'row',
140
- alignItems: 'center',
141
- borderWidth: 1,
142
- borderColor: COLORS.border,
143
- borderRadius: 8,
144
- marginBottom: 16,
145
- },
146
- input: {
147
- flex: 1,
148
- padding: 12,
149
- fontSize: 16,
150
- },
151
- visibilityButton: {
152
- padding: 12,
153
- },
154
- error: {
155
- color: COLORS.error,
156
- marginBottom: 16,
157
- },
158
- requirements: {
159
- marginBottom: 24,
160
- },
161
- requirementTitle: {
162
- fontSize: 14,
163
- fontWeight: '600',
164
- marginBottom: 8,
165
- color: COLORS.text.primary,
166
- },
167
- requirement: {
168
- fontSize: 14,
169
- color: COLORS.text.secondary,
170
- marginBottom: 4,
171
- },
172
- requirementMet: {
173
- color: COLORS.success,
174
- },
175
- submitButton: {
176
- backgroundColor: COLORS.primary,
177
- paddingVertical: 16,
178
- borderRadius: 12,
179
- alignItems: 'center',
180
- },
181
- submitButtonDisabled: {
182
- opacity: 0.5,
183
- },
184
- submitButtonText: {
185
- color: '#fff',
186
- fontSize: 16,
187
- fontWeight: '600',
188
- },
189
- });
1
+ import React, { useState, useCallback } from 'react';
2
+ import {
3
+ View,
4
+ Text,
5
+ StyleSheet,
6
+ TextInput,
7
+ TouchableOpacity,
8
+ Keyboard,
9
+ Dimensions,
10
+ } from 'react-native';
11
+ import Icon from 'react-native-vector-icons/MaterialIcons';
12
+ import { COLORS } from '../constants';
13
+ import type { PinInputProps } from '../types';
14
+
15
+ const { width } = Dimensions.get('window');
16
+
17
+ export const PinInput: React.FC<PinInputProps> = ({
18
+ onSubmit,
19
+ minLength = 8,
20
+ requireSpecialChar = true,
21
+ requireNumber = true,
22
+ onBack,
23
+ }) => {
24
+ const [pin, setPin] = useState('');
25
+ const [error, setError] = useState<string | null>(null);
26
+ const [showPin, setShowPin] = useState(false);
27
+
28
+ const validatePin = useCallback((value: string) => {
29
+ if (value.length < minLength) {
30
+ return `PIN must be at least ${minLength} characters`;
31
+ }
32
+ if (requireSpecialChar && !/[!@#$%^&*(),.?":{}|<>]/.test(value)) {
33
+ return 'PIN must include a special character';
34
+ }
35
+ if (requireNumber && !/\d/.test(value)) {
36
+ return 'PIN must include a number';
37
+ }
38
+ return null;
39
+ }, [minLength, requireSpecialChar, requireNumber]);
40
+
41
+ const handleSubmit = useCallback(() => {
42
+ const validationError = validatePin(pin);
43
+ if (validationError) {
44
+ setError(validationError);
45
+ return;
46
+ }
47
+ onSubmit(pin);
48
+ }, [pin, validatePin, onSubmit]);
49
+
50
+ const handlePinChange = useCallback((value: string) => {
51
+ setPin(value);
52
+ setError(null);
53
+ }, []);
54
+
55
+ return (
56
+ <View style={styles.container}>
57
+ <View style={styles.header}>
58
+ {onBack && (
59
+ <TouchableOpacity style={styles.backButton} onPress={onBack}>
60
+ <Icon name="arrow_back" size={24} color={COLORS.text.primary} />
61
+ </TouchableOpacity>
62
+ )}
63
+ <Text style={styles.title}>Create your PIN</Text>
64
+ <View style={styles.headerSpacer} />
65
+ </View>
66
+
67
+ <Text style={styles.subtitle}>
68
+ This PIN will be used to secure your account
69
+ </Text>
70
+
71
+ <View style={styles.inputContainer}>
72
+ <TextInput
73
+ style={styles.input}
74
+ value={pin}
75
+ onChangeText={handlePinChange}
76
+ secureTextEntry={!showPin}
77
+ placeholder="Enter PIN"
78
+ keyboardType="numeric"
79
+ maxLength={20}
80
+ autoCapitalize="none"
81
+ autoCorrect={false}
82
+ />
83
+ <TouchableOpacity
84
+ style={styles.visibilityButton}
85
+ onPress={() => setShowPin(!showPin)}
86
+ >
87
+ <Icon
88
+ name={showPin ? 'visibility-off' : 'visibility'}
89
+ size={24}
90
+ color={COLORS.text.secondary}
91
+ />
92
+ </TouchableOpacity>
93
+ </View>
94
+
95
+ {error && <Text style={styles.error}>{error}</Text>}
96
+
97
+ <View style={styles.requirements}>
98
+ <Text style={styles.requirementTitle}>PIN Requirements:</Text>
99
+ <Text style={[styles.requirement, pin.length >= minLength && styles.requirementMet]}>
100
+ • At least {minLength} characters
101
+ </Text>
102
+ {requireSpecialChar && (
103
+ <Text
104
+ style={[
105
+ styles.requirement,
106
+ /[!@#$%^&*(),.?":{}|<>]/.test(pin) && styles.requirementMet,
107
+ ]}
108
+ >
109
+ • Include a special character
110
+ </Text>
111
+ )}
112
+ {requireNumber && (
113
+ <Text
114
+ style={[
115
+ styles.requirement,
116
+ /\d/.test(pin) && styles.requirementMet,
117
+ ]}
118
+ >
119
+ • Include a number
120
+ </Text>
121
+ )}
122
+ </View>
123
+
124
+ <View style={styles.footer}>
125
+ {onBack && (
126
+ <TouchableOpacity
127
+ style={styles.cancelButton}
128
+ onPress={onBack}
129
+ >
130
+ <Text style={styles.cancelButtonText}>Back</Text>
131
+ </TouchableOpacity>
132
+ )}
133
+
134
+ <TouchableOpacity
135
+ style={[styles.submitButton, !pin && styles.submitButtonDisabled]}
136
+ onPress={handleSubmit}
137
+ disabled={!pin}
138
+ >
139
+ <Text style={styles.submitButtonText}>Continue</Text>
140
+ </TouchableOpacity>
141
+ </View>
142
+ </View>
143
+ );
144
+ };
145
+
146
+ const styles = StyleSheet.create({
147
+ container: {
148
+ flex: 1,
149
+ padding: 16,
150
+ width: width,
151
+ backgroundColor: '#fff',
152
+ },
153
+ header: {
154
+ flexDirection: 'row',
155
+ alignItems: 'center',
156
+ justifyContent: 'space-between',
157
+ marginBottom: 16,
158
+ paddingVertical: 8,
159
+ },
160
+ backButton: {
161
+ padding: 8,
162
+ },
163
+ headerSpacer: {
164
+ width: 40, // Same width as backButton for alignment
165
+ },
166
+ title: {
167
+ fontSize: 20,
168
+ fontWeight: '600',
169
+ color: COLORS.text.primary,
170
+ textAlign: 'center',
171
+ flex: 1,
172
+ },
173
+ subtitle: {
174
+ fontSize: 14,
175
+ color: COLORS.text.secondary,
176
+ marginBottom: 24,
177
+ textAlign: 'center',
178
+ },
179
+ inputContainer: {
180
+ flexDirection: 'row',
181
+ alignItems: 'center',
182
+ borderWidth: 1,
183
+ borderColor: COLORS.border,
184
+ borderRadius: 8,
185
+ marginBottom: 16,
186
+ },
187
+ input: {
188
+ flex: 1,
189
+ padding: 12,
190
+ fontSize: 16,
191
+ },
192
+ visibilityButton: {
193
+ padding: 12,
194
+ },
195
+ error: {
196
+ color: COLORS.error,
197
+ marginBottom: 16,
198
+ },
199
+ requirements: {
200
+ marginBottom: 24,
201
+ },
202
+ requirementTitle: {
203
+ fontSize: 14,
204
+ fontWeight: '600',
205
+ marginBottom: 8,
206
+ color: COLORS.text.primary,
207
+ },
208
+ requirement: {
209
+ fontSize: 14,
210
+ color: COLORS.text.secondary,
211
+ marginBottom: 4,
212
+ },
213
+ requirementMet: {
214
+ color: COLORS.success,
215
+ },
216
+ footer: {
217
+ flexDirection: 'row',
218
+ alignItems: 'center',
219
+ justifyContent: 'space-between',
220
+ marginTop: 24,
221
+ borderTopWidth: 1,
222
+ borderTopColor: '#eee',
223
+ paddingTop: 16,
224
+ },
225
+ cancelButton: {
226
+ paddingVertical: 8,
227
+ paddingHorizontal: 16,
228
+ },
229
+ cancelButtonText: {
230
+ color: '#666',
231
+ fontSize: 16,
232
+ },
233
+ submitButton: {
234
+ paddingVertical: 16,
235
+ paddingHorizontal: 32,
236
+ borderRadius: 16,
237
+ backgroundColor: COLORS.primary,
238
+ borderWidth: 1,
239
+ borderColor: COLORS.primary,
240
+ alignItems: 'center',
241
+ },
242
+ submitButtonDisabled: {
243
+ opacity: 0.5,
244
+ },
245
+ submitButtonText: {
246
+ color: '#fff',
247
+ fontSize: 16,
248
+ fontWeight: '600',
249
+ },
250
+ });