@onairos/react-native 3.0.29 → 3.0.31
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/PinInput.js +1 -1
- package/lib/commonjs/components/PinInput.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +6 -2
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/onboarding/OAuthWebView.js +217 -94
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +48 -6
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/module/components/PinInput.js +1 -1
- package/lib/module/components/PinInput.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +6 -2
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +219 -96
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/services/platformAuthService.js +48 -6
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts +7 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/PinInput.tsx +1 -1
- package/src/components/UniversalOnboarding.tsx +5 -1
- package/src/components/onboarding/OAuthWebView.tsx +254 -116
- package/src/services/platformAuthService.ts +45 -5
|
@@ -1,72 +1,177 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import { View, StyleSheet, ActivityIndicator, SafeAreaView,
|
|
1
|
+
import React, { useState, useRef } from 'react';
|
|
2
|
+
import { View, Text, StyleSheet, TouchableOpacity, ActivityIndicator, SafeAreaView, Dimensions, Linking } from 'react-native';
|
|
3
3
|
import { WebView } from 'react-native-webview';
|
|
4
4
|
import Icon from 'react-native-vector-icons/MaterialIcons';
|
|
5
5
|
import { COLORS } from '../../constants';
|
|
6
|
+
const {
|
|
7
|
+
width,
|
|
8
|
+
height
|
|
9
|
+
} = Dimensions.get('window');
|
|
6
10
|
export const OAuthWebView = ({
|
|
7
11
|
url,
|
|
8
|
-
platform,
|
|
9
|
-
onComplete,
|
|
10
12
|
onClose,
|
|
11
|
-
onSuccess
|
|
13
|
+
onSuccess,
|
|
14
|
+
platform = 'platform',
|
|
15
|
+
onComplete
|
|
12
16
|
}) => {
|
|
13
|
-
const [
|
|
14
|
-
const
|
|
15
|
-
|
|
17
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
18
|
+
const [error, setError] = useState(null);
|
|
19
|
+
const webViewRef = useRef(null);
|
|
20
|
+
console.log('Opening OAuth WebView with URL:', url);
|
|
21
|
+
const handleNavigationStateChange = navState => {
|
|
22
|
+
console.log(`Navigation state changed for ${platform}:`, navState.url);
|
|
16
23
|
|
|
17
|
-
// Check for the final redirect to onairos.uk
|
|
18
|
-
const isFinalRedirect = navState.url.includes('onairos.uk/Home');
|
|
24
|
+
// Check for the final redirect to onairos.uk domain (this means backend callback completed)
|
|
25
|
+
const isFinalRedirect = navState.url.includes('onairos.uk/Home') || navState.url.includes('onairos.uk/home') || navState.url.includes('onairos.uk/success') || navState.url.startsWith('https://onairos.uk/Home');
|
|
19
26
|
|
|
20
|
-
//
|
|
21
|
-
const
|
|
27
|
+
// Platform-specific success patterns
|
|
28
|
+
const platformSuccessPatterns = {
|
|
29
|
+
reddit: [/reddit\.com\/api\/v1\/authorize\?done=true/, /reddit\.com\/api\/v1\/authorize\/success/],
|
|
30
|
+
pinterest: [/pinterest\.com\/oauth\/success/, /pinterest\.com\/oauth\/complete/],
|
|
31
|
+
linkedin: [/linkedin\.com\/oauth\/success/, /linkedin\.com\/oauth\/complete/, /linkedin\.com\/uas\/oauth2\/authorization\/success/],
|
|
32
|
+
email: [/success/],
|
|
33
|
+
instagram: [/instagram\.com\/oauth\/authorize\?done=true/, /instagram\.com\/oauth\/success/],
|
|
34
|
+
youtube: [/accounts\.google\.com\/o\/oauth2\/approval/, /youtube\.com\/oauth\/success/]
|
|
35
|
+
};
|
|
22
36
|
|
|
23
37
|
// Check for platform-specific success patterns
|
|
24
|
-
const
|
|
25
|
-
const isLinkedInSuccess = platform === 'linkedin' && navState.url.includes('linkedin.com/oauth/v2/authorization/success');
|
|
38
|
+
const isPlatformSuccess = platform && platformSuccessPatterns[platform] ? platformSuccessPatterns[platform].some(pattern => pattern.test(navState.url)) : false;
|
|
26
39
|
|
|
27
|
-
// Check for callback URLs
|
|
28
|
-
const isCallbackUrl = navState.url.includes('/callback') || navState.url.includes('code=');
|
|
40
|
+
// Check for callback URLs that might contain the authorization code
|
|
41
|
+
const isCallbackUrl = navState.url.includes('/callback') || navState.url.includes('code=') || navState.url.includes('token=') || navState.url.includes('access_token=');
|
|
29
42
|
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
// Extract authorization code or token if present
|
|
44
|
+
let authCode = null;
|
|
45
|
+
if (isCallbackUrl) {
|
|
46
|
+
console.log('Detected callback URL with possible code/token');
|
|
47
|
+
|
|
48
|
+
// Try to extract code or token using different patterns
|
|
49
|
+
const codeMatch = navState.url.match(/code=([^&]+)/);
|
|
50
|
+
const tokenMatch = navState.url.match(/(?:token|access_token)=([^&]+)/);
|
|
51
|
+
if (codeMatch && codeMatch[1]) {
|
|
52
|
+
authCode = codeMatch[1];
|
|
53
|
+
console.log('OAuth code extracted:', authCode);
|
|
54
|
+
} else if (tokenMatch && tokenMatch[1]) {
|
|
55
|
+
authCode = tokenMatch[1];
|
|
56
|
+
console.log('OAuth token extracted:', authCode);
|
|
35
57
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// Extract the authorization code
|
|
39
|
-
const authCode = extractAuthCode(navState.url);
|
|
58
|
+
|
|
59
|
+
// Call onSuccess with the extracted code/token
|
|
40
60
|
if (authCode) {
|
|
41
61
|
onSuccess(authCode);
|
|
42
|
-
if (onComplete) {
|
|
43
|
-
onComplete();
|
|
44
|
-
}
|
|
45
62
|
}
|
|
46
|
-
return;
|
|
47
63
|
}
|
|
48
|
-
}, [platform, onComplete, onSuccess]);
|
|
49
|
-
const handleLoadEnd = useCallback(() => {
|
|
50
|
-
setLoading(false);
|
|
51
|
-
}, []);
|
|
52
64
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (
|
|
59
|
-
|
|
65
|
+
// If we see the final redirect or platform-specific success, close the OAuth window
|
|
66
|
+
if (isFinalRedirect || isPlatformSuccess) {
|
|
67
|
+
console.log(`Detected success for ${platform}`);
|
|
68
|
+
|
|
69
|
+
// If we haven't already extracted a code/token, consider this a generic success
|
|
70
|
+
if (!authCode) {
|
|
71
|
+
onSuccess('success');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Close the OAuth window
|
|
75
|
+
if (onComplete) {
|
|
76
|
+
console.log('Calling onComplete to close OAuth window');
|
|
77
|
+
onComplete();
|
|
60
78
|
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const handleLoadEnd = () => {
|
|
82
|
+
setIsLoading(false);
|
|
83
|
+
setError(null);
|
|
84
|
+
};
|
|
85
|
+
const handleError = syntheticEvent => {
|
|
86
|
+
const {
|
|
87
|
+
nativeEvent
|
|
88
|
+
} = syntheticEvent;
|
|
89
|
+
console.error('WebView error:', nativeEvent);
|
|
90
|
+
setError('Failed to load OAuth page. Please try again.');
|
|
91
|
+
setIsLoading(false);
|
|
92
|
+
};
|
|
93
|
+
const handleOpenInBrowser = () => {
|
|
94
|
+
Linking.openURL(url).catch(err => {
|
|
95
|
+
console.error('Failed to open URL in browser:', err);
|
|
96
|
+
});
|
|
97
|
+
};
|
|
61
98
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Get platform-specific icon
|
|
101
|
+
*/
|
|
102
|
+
const getPlatformIcon = platform => {
|
|
103
|
+
switch (platform) {
|
|
104
|
+
case 'instagram':
|
|
105
|
+
return 'photo-camera';
|
|
106
|
+
case 'youtube':
|
|
107
|
+
return 'smart-display';
|
|
108
|
+
case 'pinterest':
|
|
109
|
+
return 'push-pin';
|
|
110
|
+
case 'reddit':
|
|
111
|
+
return 'forum';
|
|
112
|
+
case 'email':
|
|
113
|
+
return 'email';
|
|
114
|
+
default:
|
|
115
|
+
return 'link';
|
|
68
116
|
}
|
|
69
117
|
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Get platform-specific color
|
|
121
|
+
*/
|
|
122
|
+
const getPlatformColor = platform => {
|
|
123
|
+
switch (platform) {
|
|
124
|
+
case 'instagram':
|
|
125
|
+
return '#E1306C';
|
|
126
|
+
case 'youtube':
|
|
127
|
+
return '#FF0000';
|
|
128
|
+
case 'pinterest':
|
|
129
|
+
return '#E60023';
|
|
130
|
+
case 'reddit':
|
|
131
|
+
return '#FF4500';
|
|
132
|
+
case 'email':
|
|
133
|
+
return '#4285F4';
|
|
134
|
+
default:
|
|
135
|
+
return COLORS.primary;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
if (error) {
|
|
139
|
+
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
140
|
+
style: styles.container
|
|
141
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
142
|
+
style: styles.header
|
|
143
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
144
|
+
onPress: onClose,
|
|
145
|
+
style: styles.closeButton
|
|
146
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
147
|
+
name: "close",
|
|
148
|
+
size: 24,
|
|
149
|
+
color: "#000"
|
|
150
|
+
})), /*#__PURE__*/React.createElement(View, {
|
|
151
|
+
style: styles.titleContainer
|
|
152
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
153
|
+
name: getPlatformIcon(platform),
|
|
154
|
+
size: 20,
|
|
155
|
+
color: getPlatformColor(platform)
|
|
156
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
157
|
+
style: styles.titleText
|
|
158
|
+
}, platform.charAt(0).toUpperCase() + platform.slice(1), " OAuth"))), /*#__PURE__*/React.createElement(View, {
|
|
159
|
+
style: styles.errorContainer
|
|
160
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
161
|
+
name: "error-outline",
|
|
162
|
+
size: 48,
|
|
163
|
+
color: "#FF6B6B"
|
|
164
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
165
|
+
style: styles.errorTitle
|
|
166
|
+
}, "Connection Error"), /*#__PURE__*/React.createElement(Text, {
|
|
167
|
+
style: styles.errorMessage
|
|
168
|
+
}, error), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
169
|
+
style: styles.retryButton,
|
|
170
|
+
onPress: handleOpenInBrowser
|
|
171
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
172
|
+
style: styles.retryButtonText
|
|
173
|
+
}, "Open in Browser"))));
|
|
174
|
+
}
|
|
70
175
|
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
71
176
|
style: styles.container
|
|
72
177
|
}, /*#__PURE__*/React.createElement(View, {
|
|
@@ -81,69 +186,38 @@ export const OAuthWebView = ({
|
|
|
81
186
|
})), /*#__PURE__*/React.createElement(View, {
|
|
82
187
|
style: styles.titleContainer
|
|
83
188
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
84
|
-
name: getPlatformIcon(platform
|
|
189
|
+
name: getPlatformIcon(platform),
|
|
190
|
+
size: 20,
|
|
191
|
+
color: getPlatformColor(platform)
|
|
192
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
193
|
+
style: styles.titleText
|
|
194
|
+
}, platform.charAt(0).toUpperCase() + platform.slice(1), " OAuth")), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
195
|
+
onPress: handleOpenInBrowser,
|
|
196
|
+
style: styles.browserButton
|
|
197
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
198
|
+
name: "open-in-browser",
|
|
85
199
|
size: 20,
|
|
86
|
-
color:
|
|
200
|
+
color: "#666"
|
|
87
201
|
}))), /*#__PURE__*/React.createElement(WebView, {
|
|
202
|
+
ref: webViewRef,
|
|
88
203
|
source: {
|
|
89
204
|
uri: url
|
|
90
205
|
},
|
|
91
206
|
onNavigationStateChange: handleNavigationStateChange,
|
|
92
207
|
onLoadEnd: handleLoadEnd,
|
|
93
|
-
|
|
208
|
+
onError: handleError,
|
|
94
209
|
style: styles.webView,
|
|
95
210
|
javaScriptEnabled: true,
|
|
96
211
|
domStorageEnabled: true,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
allowsInlineMediaPlayback: true,
|
|
100
|
-
mediaPlaybackRequiresUserAction: false,
|
|
101
|
-
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1",
|
|
102
|
-
mixedContentMode: "compatibility",
|
|
103
|
-
allowsFullscreenVideo: true,
|
|
104
|
-
allowsProtectedMedia: true
|
|
105
|
-
}), loading && /*#__PURE__*/React.createElement(View, {
|
|
212
|
+
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"
|
|
213
|
+
}), isLoading && /*#__PURE__*/React.createElement(View, {
|
|
106
214
|
style: styles.loadingContainer
|
|
107
215
|
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
108
216
|
size: "large",
|
|
109
217
|
color: COLORS.primary
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Get platform-specific icon
|
|
115
|
-
*/
|
|
116
|
-
const getPlatformIcon = platform => {
|
|
117
|
-
switch (platform) {
|
|
118
|
-
case 'instagram':
|
|
119
|
-
return 'photo-camera';
|
|
120
|
-
case 'youtube':
|
|
121
|
-
return 'smart-display';
|
|
122
|
-
case 'pinterest':
|
|
123
|
-
return 'push-pin';
|
|
124
|
-
case 'reddit':
|
|
125
|
-
return 'forum';
|
|
126
|
-
default:
|
|
127
|
-
return 'link';
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get platform-specific color
|
|
133
|
-
*/
|
|
134
|
-
const getPlatformColor = platform => {
|
|
135
|
-
switch (platform) {
|
|
136
|
-
case 'instagram':
|
|
137
|
-
return '#E1306C';
|
|
138
|
-
case 'youtube':
|
|
139
|
-
return '#FF0000';
|
|
140
|
-
case 'pinterest':
|
|
141
|
-
return '#E60023';
|
|
142
|
-
case 'reddit':
|
|
143
|
-
return '#FF4500';
|
|
144
|
-
default:
|
|
145
|
-
return COLORS.primary;
|
|
146
|
-
}
|
|
218
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
219
|
+
style: styles.loadingText
|
|
220
|
+
}, "Loading ", platform, "...")));
|
|
147
221
|
};
|
|
148
222
|
const styles = StyleSheet.create({
|
|
149
223
|
container: {
|
|
@@ -161,7 +235,15 @@ const styles = StyleSheet.create({
|
|
|
161
235
|
},
|
|
162
236
|
titleContainer: {
|
|
163
237
|
flex: 1,
|
|
164
|
-
|
|
238
|
+
flexDirection: 'row',
|
|
239
|
+
alignItems: 'center',
|
|
240
|
+
justifyContent: 'center'
|
|
241
|
+
},
|
|
242
|
+
titleText: {
|
|
243
|
+
marginLeft: 8,
|
|
244
|
+
fontSize: 16,
|
|
245
|
+
fontWeight: '500',
|
|
246
|
+
color: '#000'
|
|
165
247
|
},
|
|
166
248
|
closeButton: {
|
|
167
249
|
padding: 8,
|
|
@@ -169,6 +251,12 @@ const styles = StyleSheet.create({
|
|
|
169
251
|
left: 16,
|
|
170
252
|
zIndex: 10
|
|
171
253
|
},
|
|
254
|
+
browserButton: {
|
|
255
|
+
padding: 8,
|
|
256
|
+
position: 'absolute',
|
|
257
|
+
right: 16,
|
|
258
|
+
zIndex: 10
|
|
259
|
+
},
|
|
172
260
|
webView: {
|
|
173
261
|
flex: 1
|
|
174
262
|
},
|
|
@@ -177,6 +265,41 @@ const styles = StyleSheet.create({
|
|
|
177
265
|
backgroundColor: 'rgba(255, 255, 255, 0.8)',
|
|
178
266
|
alignItems: 'center',
|
|
179
267
|
justifyContent: 'center'
|
|
268
|
+
},
|
|
269
|
+
loadingText: {
|
|
270
|
+
marginTop: 10,
|
|
271
|
+
fontSize: 16,
|
|
272
|
+
color: '#666'
|
|
273
|
+
},
|
|
274
|
+
errorContainer: {
|
|
275
|
+
flex: 1,
|
|
276
|
+
alignItems: 'center',
|
|
277
|
+
justifyContent: 'center',
|
|
278
|
+
padding: 20
|
|
279
|
+
},
|
|
280
|
+
errorTitle: {
|
|
281
|
+
fontSize: 18,
|
|
282
|
+
fontWeight: '600',
|
|
283
|
+
color: '#333',
|
|
284
|
+
marginTop: 16,
|
|
285
|
+
marginBottom: 8
|
|
286
|
+
},
|
|
287
|
+
errorMessage: {
|
|
288
|
+
fontSize: 14,
|
|
289
|
+
color: '#666',
|
|
290
|
+
textAlign: 'center',
|
|
291
|
+
marginBottom: 20
|
|
292
|
+
},
|
|
293
|
+
retryButton: {
|
|
294
|
+
backgroundColor: COLORS.primary,
|
|
295
|
+
paddingHorizontal: 24,
|
|
296
|
+
paddingVertical: 12,
|
|
297
|
+
borderRadius: 8
|
|
298
|
+
},
|
|
299
|
+
retryButtonText: {
|
|
300
|
+
color: '#fff',
|
|
301
|
+
fontSize: 16,
|
|
302
|
+
fontWeight: '600'
|
|
180
303
|
}
|
|
181
304
|
});
|
|
182
305
|
//# sourceMappingURL=OAuthWebView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","SafeAreaView","Dimensions","Linking","WebView","Icon","COLORS","width","height","get","OAuthWebView","url","onClose","onSuccess","platform","onComplete","isLoading","setIsLoading","error","setError","webViewRef","console","log","handleNavigationStateChange","navState","isFinalRedirect","includes","startsWith","platformSuccessPatterns","reddit","pinterest","linkedin","email","instagram","youtube","isPlatformSuccess","some","pattern","test","isCallbackUrl","authCode","codeMatch","match","tokenMatch","handleLoadEnd","handleError","syntheticEvent","nativeEvent","handleOpenInBrowser","openURL","catch","err","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","slice","errorContainer","errorTitle","errorMessage","retryButton","retryButtonText","browserButton","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","webView","javaScriptEnabled","domStorageEnabled","userAgent","loadingContainer","loadingText","create","flex","backgroundColor","flexDirection","alignItems","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","marginLeft","fontSize","fontWeight","padding","position","left","zIndex","right","absoluteFillObject","marginTop","marginBottom","textAlign","paddingVertical","borderRadius"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -155,13 +155,55 @@ export const initiateNativeAuth = async platform => {
|
|
|
155
155
|
try {
|
|
156
156
|
// Currently only YouTube (Google Sign-In) is supported
|
|
157
157
|
if (platform === 'youtube') {
|
|
158
|
-
// This is a placeholder for the actual implementation
|
|
159
|
-
// In a real implementation, you would import and use the Google Sign-In SDK
|
|
160
158
|
console.log('Initiating native Google Sign-In for YouTube');
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
try {
|
|
160
|
+
// Import Google Sign-In dynamically to avoid errors if not installed
|
|
161
|
+
const {
|
|
162
|
+
GoogleSignin,
|
|
163
|
+
statusCodes
|
|
164
|
+
} = require('@react-native-google-signin/google-signin');
|
|
165
|
+
|
|
166
|
+
// Configure Google Sign-In
|
|
167
|
+
await GoogleSignin.configure({
|
|
168
|
+
scopes: ['https://www.googleapis.com/auth/youtube.readonly'],
|
|
169
|
+
webClientId: 'YOUR_WEB_CLIENT_ID',
|
|
170
|
+
// Replace with your actual web client ID
|
|
171
|
+
offlineAccess: true,
|
|
172
|
+
hostedDomain: '',
|
|
173
|
+
forceCodeForRefreshToken: true
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
// Check if device supports Google Play Services
|
|
177
|
+
await GoogleSignin.hasPlayServices();
|
|
178
|
+
|
|
179
|
+
// Sign in
|
|
180
|
+
const userInfo = await GoogleSignin.signIn();
|
|
181
|
+
console.log('Google Sign-In successful:', userInfo);
|
|
182
|
+
|
|
183
|
+
// Get access token
|
|
184
|
+
const tokens = await GoogleSignin.getTokens();
|
|
185
|
+
console.log('Google tokens:', tokens);
|
|
186
|
+
|
|
187
|
+
// Here you would typically send the tokens to your backend
|
|
188
|
+
// to associate the YouTube account with the user
|
|
189
|
+
|
|
190
|
+
return true;
|
|
191
|
+
} catch (error) {
|
|
192
|
+
console.error('Google Sign-In error:', error);
|
|
193
|
+
const {
|
|
194
|
+
statusCodes: StatusCodes
|
|
195
|
+
} = require('@react-native-google-signin/google-signin');
|
|
196
|
+
if (error.code === StatusCodes.SIGN_IN_CANCELLED) {
|
|
197
|
+
console.log('User cancelled the sign-in flow');
|
|
198
|
+
} else if (error.code === StatusCodes.IN_PROGRESS) {
|
|
199
|
+
console.log('Sign-in is in progress already');
|
|
200
|
+
} else if (error.code === StatusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
|
|
201
|
+
console.log('Play services not available or outdated');
|
|
202
|
+
} else {
|
|
203
|
+
console.log('Some other error happened');
|
|
204
|
+
}
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
165
207
|
}
|
|
166
208
|
throw new Error(`Native authentication not supported for ${platform}`);
|
|
167
209
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","nativeSDKPackage","reddit","pinterest","email","platform","config","getAuthEndpoint","getPlatformColor","initiateOAuth","username","appName","Error","state","jsonData","session","oauthState","response","fetch","method","headers","body","JSON","stringify","responseData","json","instagramURL","data","redditURL","pinterestURL","youtubeURL","emailURL","url","error","console","initiateNativeAuth","log","handleOAuthCallback","parsedUrl","URL","searchParams","get","isOAuthCallback","startsWith"],"sourceRoot":"..\\..\\..\\src","sources":["services/platformAuthService.ts"],"mappings":"AAGA;;AAQA;AACA,MAAMA,oBAAwD,GAAG;EAC/DC,SAAS,EAAE;IACTC,YAAY,EAAE,KAAK;IAAE;IACrBC,YAAY,EAAE,6CAA6C;IAC3DC,KAAK,EAAE;EACT,CAAC;EACDC,OAAO,EAAE;IACPH,YAAY,EAAE,IAAI;IAAE;IACpBI,gBAAgB,EAAE,2CAA2C;IAC7DH,YAAY,EAAE,2CAA2C;IACzDC,KAAK,EAAE;EACT,CAAC;EACDG,MAAM,EAAE;IACNL,YAAY,EAAE,KAAK;IACnBC,YAAY,EAAE,0CAA0C;IACxDC,KAAK,EAAE;EACT,CAAC;EACDI,SAAS,EAAE;IACTN,YAAY,EAAE,KAAK;IACnBC,YAAY,EAAE,6CAA6C;IAC3DC,KAAK,EAAE;EACT,CAAC;EACDK,KAAK,EAAE;IACLP,YAAY,EAAE,KAAK;IACnBC,YAAY,EAAE,yCAAyC;IACvDC,KAAK,EAAE;EACT;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMF,YAAY,GAAIQ,QAAgB,IAAc;EACzD,MAAMC,MAAM,GAAGX,oBAAoB,CAACU,QAAQ,CAAC;EAC7C,OAAO,CAAAC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAET,YAAY,KAAI,KAAK;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMU,eAAe,GAAIF,QAAgB,IAAa;EAC3D,MAAMC,MAAM,GAAGX,oBAAoB,CAACU,QAAQ,CAAC;EAC7C,OAAO,CAAAC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAER,YAAY,KAAI,EAAE;AACnC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMU,gBAAgB,GAAIH,QAAgB,IAAa;EAC5D,MAAMC,MAAM,GAAGX,oBAAoB,CAACU,QAAQ,CAAC;EAC7C,OAAO,CAAAC,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEP,KAAK,KAAI,SAAS;AACnC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,aAAa,GAAG,MAAAA,CAAOJ,QAAgB,EAAEK,QAAgB,EAAEC,OAAgB,KAA6B;EACnH,IAAI;IACF;IACA,IAAI,CAAChB,oBAAoB,CAACU,QAAQ,CAAC,EAAE;MACnC,MAAM,IAAIO,KAAK,CAAC,yBAAyBP,QAAQ,EAAE,CAAC;IACtD;;IAEA;IACA,IAAIV,oBAAoB,CAACU,QAAQ,CAAC,CAACR,YAAY,EAAE;MAC/C;MACA,OAAO,IAAI;IACb;;IAEA;IACA,IAAIQ,QAAQ,KAAK,WAAW,EAAE;MAC5B,MAAMQ,KAAK,GAAG,UAAU;MACxB,MAAMC,QAAQ,GAAG;QACfC,OAAO,EAAE;UACPC,UAAU,EAAEH,KAAK;UACjBH,QAAQ,EAAEA,QAAQ,IAAI;QACxB;MACF,CAAC;MAED,MAAMO,QAAQ,GAAG,MAAMC,KAAK,CAAC,6CAA6C,EAAE;QAC1EC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE;QAClB,CAAC;QACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACT,QAAQ;MAC/B,CAAC,CAAC;MAEF,MAAMU,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAI,CAAC,CAAC;MAE1C,IAAID,YAAY,CAACE,YAAY,EAAE;QAC7B,OAAOF,YAAY,CAACE,YAAY;MAClC;MAEA,MAAM,IAAId,KAAK,CAAC,oCAAoC,CAAC;IACvD;;IAEA;IACA,MAAME,QAAQ,GAAG;MACfC,OAAO,EAAE;QACPC,UAAU,EAAE,UAAU;QAAE;QACxBN,QAAQ,EAAEA,QAAQ,IAAI,QAAQ;QAC9BC,OAAO,EAAEA,OAAO,IAAI;MACtB;IACF,CAAC;;IAED;IACA,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACvB,oBAAoB,CAACU,QAAQ,CAAC,CAACP,YAAY,EAAE;MACxEqB,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACT,QAAQ;IAC/B,CAAC,CAAC;;IAEF;IACA,MAAMa,IAAI,GAAG,MAAMV,QAAQ,CAACQ,IAAI,CAAC,CAAC;;IAElC;IACA,QAAQpB,QAAQ;MACd,KAAK,QAAQ;QACX,IAAIsB,IAAI,CAACC,SAAS,EAAE,OAAOD,IAAI,CAACC,SAAS;QACzC;MACF,KAAK,WAAW;QACd,IAAID,IAAI,CAACE,YAAY,EAAE,OAAOF,IAAI,CAACE,YAAY;QAC/C;MACF,KAAK,SAAS;QACZ,IAAIF,IAAI,CAACG,UAAU,EAAE,OAAOH,IAAI,CAACG,UAAU;QAC3C;MACF,KAAK,OAAO;QACV,IAAIH,IAAI,CAACI,QAAQ,EAAE,OAAOJ,IAAI,CAACI,QAAQ;QACvC;MACF;QACE,IAAIJ,IAAI,CAACK,GAAG,EAAE,OAAOL,IAAI,CAACK,GAAG;QAC7B;IACJ;IAEA,MAAM,IAAIpB,KAAK,CAAC,sCAAsCP,QAAQ,EAAE,CAAC;EACnE,CAAC,CAAC,OAAO4B,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,8BAA8B5B,QAAQ,GAAG,EAAE4B,KAAK,CAAC;IAC/D,MAAMA,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,kBAAkB,GAAG,MAAO9B,QAAgB,IAAuB;EAC9E,IAAI;IACF;IACA,IAAIA,QAAQ,KAAK,SAAS,EAAE;
|
|
1
|
+
{"version":3,"names":["PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","nativeSDKPackage","reddit","pinterest","email","platform","config","getAuthEndpoint","getPlatformColor","initiateOAuth","username","appName","Error","state","jsonData","session","oauthState","response","fetch","method","headers","body","JSON","stringify","responseData","json","instagramURL","data","redditURL","pinterestURL","youtubeURL","emailURL","url","error","console","initiateNativeAuth","log","GoogleSignin","statusCodes","require","configure","scopes","webClientId","offlineAccess","hostedDomain","forceCodeForRefreshToken","hasPlayServices","userInfo","signIn","tokens","getTokens","StatusCodes","code","SIGN_IN_CANCELLED","IN_PROGRESS","PLAY_SERVICES_NOT_AVAILABLE","handleOAuthCallback","parsedUrl","URL","searchParams","get","isOAuthCallback","startsWith"],"sourceRoot":"..\\..\\..\\src","sources":["services/platformAuthService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalOnboarding.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalOnboarding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA0BxE,OAAO,KAAK,EAAE,wBAAwB,EAAoB,MAAM,UAAU,CAAC;AAI3E,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"UniversalOnboarding.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalOnboarding.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AA0BxE,OAAO,KAAK,EAAE,wBAAwB,EAAoB,MAAM,UAAU,CAAC;AAI3E,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAwblE,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
export interface OAuthWebViewProps {
|
|
3
|
+
url: string;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onSuccess: (code: string) => void;
|
|
6
|
+
platform?: string;
|
|
7
|
+
onComplete?: () => void;
|
|
8
|
+
}
|
|
3
9
|
export declare const OAuthWebView: React.FC<OAuthWebViewProps>;
|
|
4
10
|
//# sourceMappingURL=OAuthWebView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuthWebView.d.ts","sourceRoot":"","sources":["../../../../src/components/onboarding/OAuthWebView.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"OAuthWebView.d.ts","sourceRoot":"","sources":["../../../../src/components/onboarding/OAuthWebView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAiBhD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqOpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformAuthService.d.ts","sourceRoot":"","sources":["../../../src/services/platformAuthService.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,eAAO,MAAM,YAAY,aAAc,MAAM,KAAG,OAG/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAAc,MAAM,KAAG,MAGlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAc,MAAM,KAAG,MAGnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,aAAoB,MAAM,YAAY,MAAM,YAAY,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CAqF/G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,aAAoB,MAAM,KAAG,QAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"platformAuthService.d.ts","sourceRoot":"","sources":["../../../src/services/platformAuthService.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,eAAO,MAAM,YAAY,aAAc,MAAM,KAAG,OAG/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAAc,MAAM,KAAG,MAGlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAAc,MAAM,KAAG,MAGnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,aAAoB,MAAM,YAAY,MAAM,YAAY,MAAM,KAAG,QAAQ,MAAM,GAAG,IAAI,CAqF/G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,aAAoB,MAAM,KAAG,QAAQ,OAAO,CA0D1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAAM,GAAG,IAW1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,KAAG,OAG7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -60,7 +60,7 @@ export const PinInput: React.FC<PinInputProps> = ({
|
|
|
60
60
|
<View style={styles.header}>
|
|
61
61
|
{onBack && (
|
|
62
62
|
<TouchableOpacity style={styles.backButton} onPress={onBack}>
|
|
63
|
-
|
|
63
|
+
<Icon name="arrow-back" size={24} color={COLORS.text.primary} />
|
|
64
64
|
</TouchableOpacity>
|
|
65
65
|
)}
|
|
66
66
|
<Text style={styles.title}>Create your PIN</Text>
|
|
@@ -358,6 +358,9 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
|
|
|
358
358
|
contentContainerStyle={styles.scrollContent}
|
|
359
359
|
showsVerticalScrollIndicator={true}
|
|
360
360
|
bounces={true}
|
|
361
|
+
scrollEnabled={true}
|
|
362
|
+
nestedScrollEnabled={true}
|
|
363
|
+
keyboardShouldPersistTaps="handled"
|
|
361
364
|
>
|
|
362
365
|
{/* Main title and description */}
|
|
363
366
|
<View style={styles.titleContainer}>
|
|
@@ -557,7 +560,8 @@ const styles = StyleSheet.create({
|
|
|
557
560
|
},
|
|
558
561
|
scrollContent: {
|
|
559
562
|
flexGrow: 1,
|
|
560
|
-
paddingBottom:
|
|
563
|
+
paddingBottom: 40,
|
|
564
|
+
minHeight: '100%',
|
|
561
565
|
},
|
|
562
566
|
platformsContainer: {
|
|
563
567
|
marginTop: 16,
|