@onairos/react-native 3.0.35 → 3.0.37
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/onboarding/OAuthWebView.js +188 -26
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +188 -26
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/onboarding/OAuthWebView.tsx +202 -24
|
@@ -24,29 +24,67 @@ const OAuthWebView = ({
|
|
|
24
24
|
}) => {
|
|
25
25
|
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
26
26
|
const [error, setError] = (0, _react.useState)(null);
|
|
27
|
+
const [retryCount, setRetryCount] = (0, _react.useState)(0);
|
|
27
28
|
const webViewRef = (0, _react.useRef)(null);
|
|
29
|
+
const timeoutRef = (0, _react.useRef)(null);
|
|
28
30
|
console.log('Opening OAuth WebView with URL:', url);
|
|
31
|
+
|
|
32
|
+
// Set up timeout for OAuth flow
|
|
33
|
+
_react.default.useEffect(() => {
|
|
34
|
+
// Clear any existing timeout
|
|
35
|
+
if (timeoutRef.current) {
|
|
36
|
+
clearTimeout(timeoutRef.current);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Set a 60-second timeout for OAuth completion
|
|
40
|
+
timeoutRef.current = setTimeout(() => {
|
|
41
|
+
console.log('OAuth flow timeout - no completion detected');
|
|
42
|
+
setError('OAuth flow is taking too long. Please try again or use the browser option.');
|
|
43
|
+
setIsLoading(false);
|
|
44
|
+
}, 60000);
|
|
45
|
+
return () => {
|
|
46
|
+
if (timeoutRef.current) {
|
|
47
|
+
clearTimeout(timeoutRef.current);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}, [url]);
|
|
51
|
+
|
|
52
|
+
// Clear timeout when component unmounts or OAuth completes
|
|
53
|
+
_react.default.useEffect(() => {
|
|
54
|
+
return () => {
|
|
55
|
+
if (timeoutRef.current) {
|
|
56
|
+
clearTimeout(timeoutRef.current);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
29
60
|
const handleNavigationStateChange = navState => {
|
|
30
61
|
console.log(`Navigation state changed for ${platform}:`, navState.url);
|
|
31
62
|
|
|
63
|
+
// Check for error states first
|
|
64
|
+
if (navState.url.includes('error=') || navState.url.includes('access_denied')) {
|
|
65
|
+
console.log('OAuth error detected:', navState.url);
|
|
66
|
+
setError('Authentication was cancelled or failed. Please try again.');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
32
70
|
// Check for the final redirect to onairos.uk domain (this means backend callback completed)
|
|
33
|
-
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');
|
|
71
|
+
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') || navState.url.includes('onairos.uk') && navState.url.includes('success');
|
|
34
72
|
|
|
35
|
-
//
|
|
73
|
+
// Enhanced platform-specific success patterns
|
|
36
74
|
const platformSuccessPatterns = {
|
|
37
|
-
reddit: [/reddit\.com\/api\/v1\/authorize\?done=true/, /reddit\.com\/api\/v1\/authorize\/success/],
|
|
38
|
-
pinterest: [/pinterest\.com\/oauth\/success/, /pinterest\.com\/oauth\/complete/],
|
|
39
|
-
linkedin: [/linkedin\.com\/oauth\/success/, /linkedin\.com\/oauth\/complete/, /linkedin\.com\/uas\/oauth2\/authorization\/success/],
|
|
40
|
-
email: [/success/],
|
|
41
|
-
instagram: [/instagram\.com\/oauth\/authorize\?done=true/, /instagram\.com\/oauth\/success/],
|
|
42
|
-
youtube: [/accounts\.google\.com\/o\/oauth2\/approval/, /youtube\.com\/oauth\/success/]
|
|
75
|
+
reddit: [/reddit\.com\/api\/v1\/authorize\?done=true/, /reddit\.com\/api\/v1\/authorize\/success/, /reddit\.com.*code=/],
|
|
76
|
+
pinterest: [/pinterest\.com\/oauth\/success/, /pinterest\.com\/oauth\/complete/, /pinterest\.com.*code=/, /api2\.onairos\.uk\/pinterest\/callback/, /onairos\.uk.*pinterest/],
|
|
77
|
+
linkedin: [/linkedin\.com\/oauth\/success/, /linkedin\.com\/oauth\/complete/, /linkedin\.com\/uas\/oauth2\/authorization\/success/, /linkedin\.com.*code=/],
|
|
78
|
+
email: [/success/, /complete/],
|
|
79
|
+
instagram: [/instagram\.com\/oauth\/authorize\?done=true/, /instagram\.com\/oauth\/success/, /instagram\.com.*code=/, /api2\.onairos\.uk\/instagram\/callback/, /onairos\.uk.*instagram/],
|
|
80
|
+
youtube: [/accounts\.google\.com\/o\/oauth2\/approval/, /youtube\.com\/oauth\/success/, /accounts\.google\.com.*code=/, /api2\.onairos\.uk\/youtube\/callback/]
|
|
43
81
|
};
|
|
44
82
|
|
|
45
83
|
// Check for platform-specific success patterns
|
|
46
84
|
const isPlatformSuccess = platform && platformSuccessPatterns[platform] ? platformSuccessPatterns[platform].some(pattern => pattern.test(navState.url)) : false;
|
|
47
85
|
|
|
48
86
|
// Check for callback URLs that might contain the authorization code
|
|
49
|
-
const isCallbackUrl = navState.url.includes('/callback') || navState.url.includes('code=') || navState.url.includes('token=') || navState.url.includes('access_token=');
|
|
87
|
+
const isCallbackUrl = navState.url.includes('/callback') || navState.url.includes('code=') || navState.url.includes('token=') || navState.url.includes('access_token=') || navState.url.includes('api2.onairos.uk') || navState.url.includes('oauth_token=');
|
|
50
88
|
|
|
51
89
|
// Extract authorization code or token if present
|
|
52
90
|
let authCode = null;
|
|
@@ -56,17 +94,36 @@ const OAuthWebView = ({
|
|
|
56
94
|
// Try to extract code or token using different patterns
|
|
57
95
|
const codeMatch = navState.url.match(/code=([^&]+)/);
|
|
58
96
|
const tokenMatch = navState.url.match(/(?:token|access_token)=([^&]+)/);
|
|
97
|
+
const oauthTokenMatch = navState.url.match(/oauth_token=([^&]+)/);
|
|
59
98
|
if (codeMatch && codeMatch[1]) {
|
|
60
|
-
authCode = codeMatch[1];
|
|
99
|
+
authCode = decodeURIComponent(codeMatch[1]);
|
|
61
100
|
console.log('OAuth code extracted:', authCode);
|
|
62
101
|
} else if (tokenMatch && tokenMatch[1]) {
|
|
63
|
-
authCode = tokenMatch[1];
|
|
102
|
+
authCode = decodeURIComponent(tokenMatch[1]);
|
|
103
|
+
console.log('OAuth token extracted:', authCode);
|
|
104
|
+
} else if (oauthTokenMatch && oauthTokenMatch[1]) {
|
|
105
|
+
authCode = decodeURIComponent(oauthTokenMatch[1]);
|
|
64
106
|
console.log('OAuth token extracted:', authCode);
|
|
65
107
|
}
|
|
66
108
|
|
|
67
109
|
// Call onSuccess with the extracted code/token
|
|
68
110
|
if (authCode) {
|
|
111
|
+
console.log(`Calling onSuccess for ${platform} with code:`, authCode);
|
|
112
|
+
|
|
113
|
+
// Clear timeout since OAuth completed successfully
|
|
114
|
+
if (timeoutRef.current) {
|
|
115
|
+
clearTimeout(timeoutRef.current);
|
|
116
|
+
}
|
|
69
117
|
onSuccess(authCode);
|
|
118
|
+
|
|
119
|
+
// Close the OAuth window after a short delay
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
if (onComplete) {
|
|
122
|
+
console.log('Calling onComplete to close OAuth window');
|
|
123
|
+
onComplete();
|
|
124
|
+
}
|
|
125
|
+
}, 1000);
|
|
126
|
+
return;
|
|
70
127
|
}
|
|
71
128
|
}
|
|
72
129
|
|
|
@@ -76,6 +133,7 @@ const OAuthWebView = ({
|
|
|
76
133
|
|
|
77
134
|
// If we haven't already extracted a code/token, consider this a generic success
|
|
78
135
|
if (!authCode) {
|
|
136
|
+
console.log(`Calling onSuccess for ${platform} with generic success`);
|
|
79
137
|
onSuccess('success');
|
|
80
138
|
}
|
|
81
139
|
|
|
@@ -85,6 +143,17 @@ const OAuthWebView = ({
|
|
|
85
143
|
onComplete();
|
|
86
144
|
}
|
|
87
145
|
}
|
|
146
|
+
|
|
147
|
+
// Handle specific redirect patterns that indicate completion
|
|
148
|
+
if (navState.url.includes('api2.onairos.uk') && (navState.url.includes('callback') || navState.url.includes('success'))) {
|
|
149
|
+
console.log(`Backend callback detected for ${platform}`);
|
|
150
|
+
onSuccess('backend_callback_success');
|
|
151
|
+
setTimeout(() => {
|
|
152
|
+
if (onComplete) {
|
|
153
|
+
onComplete();
|
|
154
|
+
}
|
|
155
|
+
}, 1500);
|
|
156
|
+
}
|
|
88
157
|
};
|
|
89
158
|
const handleLoadEnd = () => {
|
|
90
159
|
setIsLoading(false);
|
|
@@ -95,14 +164,39 @@ const OAuthWebView = ({
|
|
|
95
164
|
nativeEvent
|
|
96
165
|
} = syntheticEvent;
|
|
97
166
|
console.error('WebView error:', nativeEvent);
|
|
98
|
-
|
|
99
|
-
|
|
167
|
+
if (retryCount < 2) {
|
|
168
|
+
console.log(`Retrying OAuth load (attempt ${retryCount + 1})`);
|
|
169
|
+
setRetryCount(prev => prev + 1);
|
|
170
|
+
setIsLoading(true);
|
|
171
|
+
setError(null);
|
|
172
|
+
|
|
173
|
+
// Retry after a short delay
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
if (webViewRef.current) {
|
|
176
|
+
webViewRef.current.reload();
|
|
177
|
+
}
|
|
178
|
+
}, 2000);
|
|
179
|
+
} else {
|
|
180
|
+
setError('Failed to load OAuth page. Please try again or use the browser option.');
|
|
181
|
+
setIsLoading(false);
|
|
182
|
+
}
|
|
100
183
|
};
|
|
101
184
|
const handleOpenInBrowser = () => {
|
|
185
|
+
console.log('Opening OAuth URL in external browser:', url);
|
|
102
186
|
_reactNative.Linking.openURL(url).catch(err => {
|
|
103
187
|
console.error('Failed to open URL in browser:', err);
|
|
188
|
+
setError('Unable to open browser. Please check your device settings.');
|
|
104
189
|
});
|
|
105
190
|
};
|
|
191
|
+
const handleRetry = () => {
|
|
192
|
+
console.log('Manual retry requested');
|
|
193
|
+
setError(null);
|
|
194
|
+
setIsLoading(true);
|
|
195
|
+
setRetryCount(0);
|
|
196
|
+
if (webViewRef.current) {
|
|
197
|
+
webViewRef.current.reload();
|
|
198
|
+
}
|
|
199
|
+
};
|
|
106
200
|
|
|
107
201
|
/**
|
|
108
202
|
* Get platform-specific icon
|
|
@@ -173,12 +267,19 @@ const OAuthWebView = ({
|
|
|
173
267
|
style: styles.errorTitle
|
|
174
268
|
}, "Connection Error"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
175
269
|
style: styles.errorMessage
|
|
176
|
-
}, error), /*#__PURE__*/_react.default.createElement(_reactNative.
|
|
270
|
+
}, error), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
271
|
+
style: styles.buttonContainer
|
|
272
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
177
273
|
style: styles.retryButton,
|
|
178
|
-
onPress:
|
|
274
|
+
onPress: handleRetry
|
|
179
275
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
180
276
|
style: styles.retryButtonText
|
|
181
|
-
}, "
|
|
277
|
+
}, "Retry")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
278
|
+
style: styles.browserButton,
|
|
279
|
+
onPress: handleOpenInBrowser
|
|
280
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
281
|
+
style: styles.browserButtonText
|
|
282
|
+
}, "Open in Browser")))));
|
|
182
283
|
}
|
|
183
284
|
return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
|
|
184
285
|
style: styles.container
|
|
@@ -232,11 +333,35 @@ const OAuthWebView = ({
|
|
|
232
333
|
mixedContentMode: "compatibility",
|
|
233
334
|
thirdPartyCookiesEnabled: true,
|
|
234
335
|
sharedCookiesEnabled: true,
|
|
235
|
-
|
|
336
|
+
cacheEnabled: true,
|
|
337
|
+
allowsBackForwardNavigationGestures: true,
|
|
338
|
+
allowsLinkPreview: false,
|
|
339
|
+
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1",
|
|
236
340
|
onShouldStartLoadWithRequest: request => {
|
|
237
|
-
|
|
341
|
+
console.log('WebView attempting to load:', request.url);
|
|
342
|
+
|
|
343
|
+
// Block about:srcdoc and other problematic URLs
|
|
344
|
+
if (request.url.startsWith('about:') || request.url.startsWith('data:') || request.url === 'about:blank') {
|
|
345
|
+
console.log('Blocking problematic URL:', request.url);
|
|
346
|
+
return false;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// Allow all other requests
|
|
238
350
|
return true;
|
|
239
351
|
},
|
|
352
|
+
onLoadStart: syntheticEvent => {
|
|
353
|
+
const {
|
|
354
|
+
nativeEvent
|
|
355
|
+
} = syntheticEvent;
|
|
356
|
+
console.log('WebView load started:', nativeEvent.url);
|
|
357
|
+
setIsLoading(true);
|
|
358
|
+
},
|
|
359
|
+
onLoadProgress: syntheticEvent => {
|
|
360
|
+
const {
|
|
361
|
+
nativeEvent
|
|
362
|
+
} = syntheticEvent;
|
|
363
|
+
console.log('WebView load progress:', nativeEvent.progress);
|
|
364
|
+
},
|
|
240
365
|
renderError: errorName => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
241
366
|
style: styles.errorContainer
|
|
242
367
|
}, /*#__PURE__*/_react.default.createElement(_MaterialIcons.default, {
|
|
@@ -249,10 +374,10 @@ const OAuthWebView = ({
|
|
|
249
374
|
style: styles.errorMessage
|
|
250
375
|
}, "Failed to load the authentication page. Error: ", errorName), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
251
376
|
style: styles.retryButton,
|
|
252
|
-
onPress:
|
|
377
|
+
onPress: handleRetry
|
|
253
378
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
254
379
|
style: styles.retryButtonText
|
|
255
|
-
}, "
|
|
380
|
+
}, "Retry"))),
|
|
256
381
|
renderLoading: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
257
382
|
style: styles.loadingContainer
|
|
258
383
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
|
|
@@ -260,7 +385,30 @@ const OAuthWebView = ({
|
|
|
260
385
|
color: _constants.COLORS.primary
|
|
261
386
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
262
387
|
style: styles.loadingText
|
|
263
|
-
}, "Loading ", platform, "..."))
|
|
388
|
+
}, "Loading ", platform, "...")),
|
|
389
|
+
injectedJavaScript: `
|
|
390
|
+
// Prevent white screen issues
|
|
391
|
+
window.addEventListener('error', function(e) {
|
|
392
|
+
console.log('JavaScript error:', e.message);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
// Handle OAuth redirects
|
|
396
|
+
window.addEventListener('beforeunload', function(e) {
|
|
397
|
+
console.log('Page unloading:', window.location.href);
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// Monitor for OAuth completion
|
|
401
|
+
setInterval(function() {
|
|
402
|
+
if (window.location.href.includes('code=') ||
|
|
403
|
+
window.location.href.includes('access_token=') ||
|
|
404
|
+
window.location.href.includes('oauth_token=') ||
|
|
405
|
+
window.location.href.includes('api2.onairos.uk')) {
|
|
406
|
+
console.log('OAuth completion detected:', window.location.href);
|
|
407
|
+
}
|
|
408
|
+
}, 1000);
|
|
409
|
+
|
|
410
|
+
true; // Required for injected JavaScript
|
|
411
|
+
`
|
|
264
412
|
}));
|
|
265
413
|
};
|
|
266
414
|
exports.OAuthWebView = OAuthWebView;
|
|
@@ -297,10 +445,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
297
445
|
zIndex: 10
|
|
298
446
|
},
|
|
299
447
|
browserButton: {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
448
|
+
backgroundColor: 'transparent',
|
|
449
|
+
borderWidth: 1,
|
|
450
|
+
borderColor: '#666',
|
|
451
|
+
paddingHorizontal: 24,
|
|
452
|
+
paddingVertical: 12,
|
|
453
|
+
borderRadius: 8
|
|
304
454
|
},
|
|
305
455
|
webView: {
|
|
306
456
|
flex: 1
|
|
@@ -339,12 +489,24 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
339
489
|
backgroundColor: _constants.COLORS.primary,
|
|
340
490
|
paddingHorizontal: 24,
|
|
341
491
|
paddingVertical: 12,
|
|
342
|
-
borderRadius: 8
|
|
492
|
+
borderRadius: 8,
|
|
493
|
+
marginRight: 10
|
|
343
494
|
},
|
|
344
495
|
retryButtonText: {
|
|
345
496
|
color: '#fff',
|
|
346
497
|
fontSize: 16,
|
|
347
498
|
fontWeight: '600'
|
|
499
|
+
},
|
|
500
|
+
buttonContainer: {
|
|
501
|
+
flexDirection: 'row',
|
|
502
|
+
justifyContent: 'center',
|
|
503
|
+
alignItems: 'center',
|
|
504
|
+
marginTop: 10
|
|
505
|
+
},
|
|
506
|
+
browserButtonText: {
|
|
507
|
+
color: '#666',
|
|
508
|
+
fontSize: 16,
|
|
509
|
+
fontWeight: '600'
|
|
348
510
|
}
|
|
349
511
|
});
|
|
350
512
|
//# sourceMappingURL=OAuthWebView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_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","OAuthWebView","url","onClose","onSuccess","platform","onComplete","isLoading","setIsLoading","useState","error","setError","webViewRef","useRef","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","Linking","openURL","catch","err","getPlatformIcon","getPlatformColor","COLORS","primary","createElement","SafeAreaView","style","styles","container","View","header","TouchableOpacity","onPress","closeButton","name","size","color","titleContainer","Text","titleText","charAt","toUpperCase","slice","errorContainer","errorTitle","errorMessage","retryButton","retryButtonText","browserButton","WebView","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","userAgent","onShouldStartLoadWithRequest","request","renderError","errorName","renderLoading","loadingContainer","ActivityIndicator","loadingText","exports","StyleSheet","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":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_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","OAuthWebView","url","onClose","onSuccess","platform","onComplete","isLoading","setIsLoading","useState","error","setError","retryCount","setRetryCount","webViewRef","useRef","timeoutRef","console","log","React","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalRedirect","startsWith","platformSuccessPatterns","reddit","pinterest","linkedin","email","instagram","youtube","isPlatformSuccess","some","pattern","test","isCallbackUrl","authCode","codeMatch","match","tokenMatch","oauthTokenMatch","decodeURIComponent","handleLoadEnd","handleError","syntheticEvent","nativeEvent","prev","reload","handleOpenInBrowser","Linking","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","COLORS","primary","createElement","SafeAreaView","style","styles","container","View","header","TouchableOpacity","onPress","closeButton","name","size","color","titleContainer","Text","titleText","charAt","toUpperCase","slice","errorContainer","errorTitle","errorMessage","buttonContainer","retryButton","retryButtonText","browserButton","browserButtonText","WebView","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","cacheEnabled","allowsBackForwardNavigationGestures","allowsLinkPreview","userAgent","onShouldStartLoadWithRequest","request","onLoadStart","onLoadProgress","progress","renderError","errorName","renderLoading","loadingContainer","ActivityIndicator","loadingText","injectedJavaScript","exports","StyleSheet","create","flex","backgroundColor","flexDirection","alignItems","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","marginLeft","fontSize","fontWeight","padding","position","left","zIndex","borderWidth","borderColor","paddingVertical","borderRadius","absoluteFillObject","marginTop","marginBottom","textAlign","marginRight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAAyC,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAO,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAEzC,MAAM;EAAEgB,KAAK;EAAEC;AAAO,CAAC,GAAGC,uBAAU,CAACT,GAAG,CAAC,QAAQ,CAAC;AAU3C,MAAMU,YAAyC,GAAGA,CAAC;EACxDC,GAAG;EACHC,OAAO;EACPC,SAAS;EACTC,QAAQ,GAAG,UAAU;EACrBC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EAChD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAF,eAAQ,EAAgB,IAAI,CAAC;EACvD,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAJ,eAAQ,EAAC,CAAC,CAAC;EAC/C,MAAMK,UAAU,GAAG,IAAAC,aAAM,EAAU,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,IAAAD,aAAM,EAAuC,IAAI,CAAC;EAErEE,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEhB,GAAG,CAAC;;EAEnD;EACAiB,cAAK,CAACC,SAAS,CAAC,MAAM;IACpB;IACA,IAAIJ,UAAU,CAACK,OAAO,EAAE;MACtBC,YAAY,CAACN,UAAU,CAACK,OAAO,CAAC;IAClC;;IAEA;IACAL,UAAU,CAACK,OAAO,GAAGE,UAAU,CAAC,MAAM;MACpCN,OAAO,CAACC,GAAG,CAAC,6CAA6C,CAAC;MAC1DP,QAAQ,CAAC,4EAA4E,CAAC;MACtFH,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC,EAAE,KAAK,CAAC;IAET,OAAO,MAAM;MACX,IAAIQ,UAAU,CAACK,OAAO,EAAE;QACtBC,YAAY,CAACN,UAAU,CAACK,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,CAACnB,GAAG,CAAC,CAAC;;EAET;EACAiB,cAAK,CAACC,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,IAAIJ,UAAU,CAACK,OAAO,EAAE;QACtBC,YAAY,CAACN,UAAU,CAACK,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,2BAA2B,GAAIC,QAAa,IAAK;IACrDR,OAAO,CAACC,GAAG,CAAC,gCAAgCb,QAAQ,GAAG,EAAEoB,QAAQ,CAACvB,GAAG,CAAC;;IAEtE;IACA,IAAIuB,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,QAAQ,CAAC,IAAID,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,eAAe,CAAC,EAAE;MAC7ET,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEO,QAAQ,CAACvB,GAAG,CAAC;MAClDS,QAAQ,CAAC,2DAA2D,CAAC;MACrE;IACF;;IAEA;IACA,MAAMgB,eAAe,GACnBF,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,oBAAoB,CAAC,IAC3CD,QAAQ,CAACvB,GAAG,CAAC0B,UAAU,CAAC,yBAAyB,CAAC,IAClDH,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,YAAY,CAAC,IAAID,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,SAAS,CACvE;;IAED;IACA,MAAMG,uBAAiD,GAAG;MACxDC,MAAM,EAAE,CACN,4CAA4C,EAC5C,0CAA0C,EAC1C,oBAAoB,CACrB;MACDC,SAAS,EAAE,CACT,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,wCAAwC,EACxC,wBAAwB,CACzB;MACDC,QAAQ,EAAE,CACR,+BAA+B,EAC/B,gCAAgC,EAChC,oDAAoD,EACpD,sBAAsB,CACvB;MACDC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;MAC9BC,SAAS,EAAE,CACT,6CAA6C,EAC7C,gCAAgC,EAChC,uBAAuB,EACvB,wCAAwC,EACxC,wBAAwB,CACzB;MACDC,OAAO,EAAE,CACP,4CAA4C,EAC5C,8BAA8B,EAC9B,8BAA8B,EAC9B,sCAAsC;IAE1C,CAAC;;IAED;IACA,MAAMC,iBAAiB,GAAG/B,QAAQ,IAAIwB,uBAAuB,CAACxB,QAAQ,CAAC,GACrEwB,uBAAuB,CAACxB,QAAQ,CAAC,CAACgC,IAAI,CAACC,OAAO,IAAIA,OAAO,CAACC,IAAI,CAACd,QAAQ,CAACvB,GAAG,CAAC,CAAC,GAC7E,KAAK;;IAEP;IACA,MAAMsC,aAAa,GACjBf,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,WAAW,CAAC,IAClCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,OAAO,CAAC,IAC9BD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,QAAQ,CAAC,IAC/BD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,eAAe,CAAC,IACtCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,cAAc,CACrC;;IAED;IACA,IAAIe,QAAQ,GAAG,IAAI;IACnB,IAAID,aAAa,EAAE;MACjBvB,OAAO,CAACC,GAAG,CAAC,gDAAgD,CAAC;;MAE7D;MACA,MAAMwB,SAAS,GAAGjB,QAAQ,CAACvB,GAAG,CAACyC,KAAK,CAAC,cAAc,CAAC;MACpD,MAAMC,UAAU,GAAGnB,QAAQ,CAACvB,GAAG,CAACyC,KAAK,CAAC,gCAAgC,CAAC;MACvE,MAAME,eAAe,GAAGpB,QAAQ,CAACvB,GAAG,CAACyC,KAAK,CAAC,qBAAqB,CAAC;MAEjE,IAAID,SAAS,IAAIA,SAAS,CAAC,CAAC,CAAC,EAAE;QAC7BD,QAAQ,GAAGK,kBAAkB,CAACJ,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3CzB,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEuB,QAAQ,CAAC;MAChD,CAAC,MAAM,IAAIG,UAAU,IAAIA,UAAU,CAAC,CAAC,CAAC,EAAE;QACtCH,QAAQ,GAAGK,kBAAkB,CAACF,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5C3B,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEuB,QAAQ,CAAC;MACjD,CAAC,MAAM,IAAII,eAAe,IAAIA,eAAe,CAAC,CAAC,CAAC,EAAE;QAChDJ,QAAQ,GAAGK,kBAAkB,CAACD,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD5B,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEuB,QAAQ,CAAC;MACjD;;MAEA;MACA,IAAIA,QAAQ,EAAE;QACZxB,OAAO,CAACC,GAAG,CAAC,yBAAyBb,QAAQ,aAAa,EAAEoC,QAAQ,CAAC;;QAErE;QACA,IAAIzB,UAAU,CAACK,OAAO,EAAE;UACtBC,YAAY,CAACN,UAAU,CAACK,OAAO,CAAC;QAClC;QAEAjB,SAAS,CAACqC,QAAQ,CAAC;;QAEnB;QACAlB,UAAU,CAAC,MAAM;UACf,IAAIjB,UAAU,EAAE;YACdW,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;YACvDZ,UAAU,CAAC,CAAC;UACd;QACF,CAAC,EAAE,IAAI,CAAC;QACR;MACF;IACF;;IAEA;IACA,IAAIqB,eAAe,IAAIS,iBAAiB,EAAE;MACxCnB,OAAO,CAACC,GAAG,CAAC,wBAAwBb,QAAQ,EAAE,CAAC;;MAE/C;MACA,IAAI,CAACoC,QAAQ,EAAE;QACbxB,OAAO,CAACC,GAAG,CAAC,yBAAyBb,QAAQ,uBAAuB,CAAC;QACrED,SAAS,CAAC,SAAS,CAAC;MACtB;;MAEA;MACA,IAAIE,UAAU,EAAE;QACdW,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;QACvDZ,UAAU,CAAC,CAAC;MACd;IACF;;IAEA;IACA,IAAImB,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,iBAAiB,CAAC,KACvCD,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,UAAU,CAAC,IAAID,QAAQ,CAACvB,GAAG,CAACwB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;MAC3ET,OAAO,CAACC,GAAG,CAAC,iCAAiCb,QAAQ,EAAE,CAAC;MACxDD,SAAS,CAAC,0BAA0B,CAAC;MAErCmB,UAAU,CAAC,MAAM;QACf,IAAIjB,UAAU,EAAE;UACdA,UAAU,CAAC,CAAC;QACd;MACF,CAAC,EAAE,IAAI,CAAC;IACV;EACF,CAAC;EAED,MAAMyC,aAAa,GAAGA,CAAA,KAAM;IAC1BvC,YAAY,CAAC,KAAK,CAAC;IACnBG,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC;EAED,MAAMqC,WAAW,GAAIC,cAAmB,IAAK;IAC3C,MAAM;MAAEC;IAAY,CAAC,GAAGD,cAAc;IACtChC,OAAO,CAACP,KAAK,CAAC,gBAAgB,EAAEwC,WAAW,CAAC;IAE5C,IAAItC,UAAU,GAAG,CAAC,EAAE;MAClBK,OAAO,CAACC,GAAG,CAAC,gCAAgCN,UAAU,GAAG,CAAC,GAAG,CAAC;MAC9DC,aAAa,CAACsC,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC;MAC/B3C,YAAY,CAAC,IAAI,CAAC;MAClBG,QAAQ,CAAC,IAAI,CAAC;;MAEd;MACAY,UAAU,CAAC,MAAM;QACf,IAAIT,UAAU,CAACO,OAAO,EAAE;UACtBP,UAAU,CAACO,OAAO,CAAC+B,MAAM,CAAC,CAAC;QAC7B;MACF,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,MAAM;MACLzC,QAAQ,CAAC,wEAAwE,CAAC;MAClFH,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC;EAED,MAAM6C,mBAAmB,GAAGA,CAAA,KAAM;IAChCpC,OAAO,CAACC,GAAG,CAAC,wCAAwC,EAAEhB,GAAG,CAAC;IAC1DoD,oBAAO,CAACC,OAAO,CAACrD,GAAG,CAAC,CAACsD,KAAK,CAACC,GAAG,IAAI;MAChCxC,OAAO,CAACP,KAAK,CAAC,gCAAgC,EAAE+C,GAAG,CAAC;MACpD9C,QAAQ,CAAC,4DAA4D,CAAC;IACxE,CAAC,CAAC;EACJ,CAAC;EAED,MAAM+C,WAAW,GAAGA,CAAA,KAAM;IACxBzC,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACrCP,QAAQ,CAAC,IAAI,CAAC;IACdH,YAAY,CAAC,IAAI,CAAC;IAClBK,aAAa,CAAC,CAAC,CAAC;IAEhB,IAAIC,UAAU,CAACO,OAAO,EAAE;MACtBP,UAAU,CAACO,OAAO,CAAC+B,MAAM,CAAC,CAAC;IAC7B;EACF,CAAC;;EAED;AACF;AACA;EACE,MAAMO,eAAe,GAAItD,QAAgB,IAAa;IACpD,QAAQA,QAAQ;MACd,KAAK,WAAW;QACd,OAAO,cAAc;MACvB,KAAK,SAAS;QACZ,OAAO,eAAe;MACxB,KAAK,WAAW;QACd,OAAO,UAAU;MACnB,KAAK,QAAQ;QACX,OAAO,OAAO;MAChB,KAAK,OAAO;QACV,OAAO,OAAO;MAChB;QACE,OAAO,MAAM;IACjB;EACF,CAAC;;EAED;AACF;AACA;EACE,MAAMuD,gBAAgB,GAAIvD,QAAgB,IAAa;IACrD,QAAQA,QAAQ;MACd,KAAK,WAAW;QACd,OAAO,SAAS;MAClB,KAAK,SAAS;QACZ,OAAO,SAAS;MAClB,KAAK,WAAW;QACd,OAAO,SAAS;MAClB,KAAK,QAAQ;QACX,OAAO,SAAS;MAClB,KAAK,OAAO;QACV,OAAO,SAAS;MAClB;QACE,OAAOwD,iBAAM,CAACC,OAAO;IACzB;EACF,CAAC;EAED,IAAIpD,KAAK,EAAE;IACT,oBACEvC,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA0F,YAAY;MAACC,KAAK,EAAEC,MAAM,CAACC;IAAU,gBACpChG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACG;IAAO,gBACzBlG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;MAACC,OAAO,EAAEpE,OAAQ;MAAC8D,KAAK,EAAEC,MAAM,CAACM;IAAY,gBAC5DrG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;MAAC4F,IAAI,EAAC,OAAO;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAM,CAAE,CAC3B,CAAC,eACnBxG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACU;IAAe,gBACjCzG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;MACH4F,IAAI,EAAEd,eAAe,CAACtD,QAAQ,CAAE;MAChCqE,IAAI,EAAE,EAAG;MACTC,KAAK,EAAEf,gBAAgB,CAACvD,QAAQ;IAAE,CACnC,CAAC,eACFlC,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACY;IAAU,GAAEzE,QAAQ,CAAC0E,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG3E,QAAQ,CAAC4E,KAAK,CAAC,CAAC,CAAC,EAAC,QAAY,CAC7F,CACF,CAAC,eAEP9G,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACgB;IAAe,gBACjC/G,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;MAAC4F,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAS,CAAE,CAAC,eACvDxG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACiB;IAAW,GAAC,kBAAsB,CAAC,eACvDhH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACkB;IAAa,GAAE1E,KAAY,CAAC,eAChDvC,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACmB;IAAgB,gBAClClH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;MAACL,KAAK,EAAEC,MAAM,CAACoB,WAAY;MAACf,OAAO,EAAEb;IAAY,gBAChEvF,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACqB;IAAgB,GAAC,OAAW,CAChC,CAAC,eACnBpH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;MAACL,KAAK,EAAEC,MAAM,CAACsB,aAAc;MAACjB,OAAO,EAAElB;IAAoB,gBAC1ElF,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACuB;IAAkB,GAAC,iBAAqB,CAC5C,CACd,CACF,CACM,CAAC;EAEnB;EAEA,oBACEtH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA0F,YAAY;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBACpChG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;IAACH,KAAK,EAAEC,MAAM,CAACG;EAAO,gBACzBlG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;IAACC,OAAO,EAAEpE,OAAQ;IAAC8D,KAAK,EAAEC,MAAM,CAACM;EAAY,gBAC5DrG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;IAAC4F,IAAI,EAAC,OAAO;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAM,CAAE,CAC3B,CAAC,eACnBxG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;IAACH,KAAK,EAAEC,MAAM,CAACU;EAAe,gBACjCzG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;IACH4F,IAAI,EAAEd,eAAe,CAACtD,QAAQ,CAAE;IAChCqE,IAAI,EAAE,EAAG;IACTC,KAAK,EAAEf,gBAAgB,CAACvD,QAAQ;EAAE,CACnC,CAAC,eACFlC,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;IAACZ,KAAK,EAAEC,MAAM,CAACY;EAAU,GAAEzE,QAAQ,CAAC0E,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG3E,QAAQ,CAAC4E,KAAK,CAAC,CAAC,CAAC,EAAC,QAAY,CAC7F,CAAC,eACP9G,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;IAACC,OAAO,EAAElB,mBAAoB;IAACY,KAAK,EAAEC,MAAM,CAACsB;EAAc,gBAC1ErH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;IAAC4F,IAAI,EAAC,iBAAiB;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAM,CAAE,CACrC,CACd,CAAC,eAEPxG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACxF,mBAAA,CAAAmH,OAAO;IACNC,GAAG,EAAE7E,UAAW;IAChB8E,MAAM,EAAE;MAAEC,GAAG,EAAE3F;IAAI,CAAE;IACrB4F,uBAAuB,EAAEtE,2BAA4B;IACrDuE,SAAS,EAAEhD,aAAc;IACzBiD,OAAO,EAAEhD,WAAY;IACrBiD,WAAW,EAAGhD,cAAc,IAAK;MAC/B,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtChC,OAAO,CAACP,KAAK,CAAC,qBAAqB,EAAEwC,WAAW,CAAC;MACjDvC,QAAQ,CAAC,mEAAmE,CAAC;MAC7EH,YAAY,CAAC,KAAK,CAAC;IACrB,CAAE;IACFyD,KAAK,EAAEC,MAAM,CAACgC,OAAQ;IACtBC,iBAAiB,EAAE,IAAK;IACxBC,iBAAiB,EAAE,IAAK;IACxBC,mBAAmB,EAAE,IAAK;IAC1BC,eAAe,EAAE,IAAK;IACtBC,yBAAyB,EAAE,IAAK;IAChCC,+BAA+B,EAAE,KAAM;IACvCC,gBAAgB,EAAC,eAAe;IAChCC,wBAAwB,EAAE,IAAK;IAC/BC,oBAAoB,EAAE,IAAK;IAC3BC,YAAY,EAAE,IAAK;IACnBC,mCAAmC,EAAE,IAAK;IAC1CC,iBAAiB,EAAE,KAAM;IACzBC,SAAS,EAAC,yIAAyI;IACnJC,4BAA4B,EAAGC,OAAO,IAAK;MACzChG,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAE+F,OAAO,CAAC/G,GAAG,CAAC;;MAEvD;MACA,IAAI+G,OAAO,CAAC/G,GAAG,CAAC0B,UAAU,CAAC,QAAQ,CAAC,IAChCqF,OAAO,CAAC/G,GAAG,CAAC0B,UAAU,CAAC,OAAO,CAAC,IAC/BqF,OAAO,CAAC/G,GAAG,KAAK,aAAa,EAAE;QACjCe,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAE+F,OAAO,CAAC/G,GAAG,CAAC;QACrD,OAAO,KAAK;MACd;;MAEA;MACA,OAAO,IAAI;IACb,CAAE;IACFgH,WAAW,EAAGjE,cAAc,IAAK;MAC/B,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtChC,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEgC,WAAW,CAAChD,GAAG,CAAC;MACrDM,YAAY,CAAC,IAAI,CAAC;IACpB,CAAE;IACF2G,cAAc,EAAGlE,cAAc,IAAK;MAClC,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtChC,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEgC,WAAW,CAACkE,QAAQ,CAAC;IAC7D,CAAE;IACFC,WAAW,EAAGC,SAAS,iBACrBnJ,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACgB;IAAe,gBACjC/G,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACvF,cAAA,CAAAK,OAAI;MAAC4F,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAS,CAAE,CAAC,eACvDxG,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACiB;IAAW,GAAC,eAAmB,CAAC,eACpDhH,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACkB;IAAa,GAAC,iDACe,EAACkC,SAC5C,CAAC,eACPnJ,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAgG,gBAAgB;MAACL,KAAK,EAAEC,MAAM,CAACoB,WAAY;MAACf,OAAO,EAAEb;IAAY,gBAChEvF,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACqB;IAAgB,GAAC,OAAW,CAChC,CACd,CACN;IACFgC,aAAa,EAAEA,CAAA,kBACbpJ,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAA8F,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACsD;IAAiB,gBACnCrJ,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAmJ,iBAAiB;MAAC/C,IAAI,EAAC,OAAO;MAACC,KAAK,EAAEd,iBAAM,CAACC;IAAQ,CAAE,CAAC,eACzD3F,MAAA,CAAAU,OAAA,CAAAkF,aAAA,CAACzF,YAAA,CAAAuG,IAAI;MAACZ,KAAK,EAAEC,MAAM,CAACwD;IAAY,GAAC,UAAQ,EAACrH,QAAQ,EAAC,KAAS,CACxD,CACN;IACFsH,kBAAkB,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAAU,CACH,CACW,CAAC;AAEnB,CAAC;AAACC,OAAA,CAAA3H,YAAA,GAAAA,YAAA;AAEF,MAAMiE,MAAM,GAAG2D,uBAAU,CAACC,MAAM,CAAC;EAC/B3D,SAAS,EAAE;IACT4D,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACD3D,MAAM,EAAE;IACN4D,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBnI,MAAM,EAAE,EAAE;IACViI,eAAe,EAAE,SAAS;IAC1BG,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAE,SAAS;IAC5BC,iBAAiB,EAAE;EACrB,CAAC;EACDzD,cAAc,EAAE;IACdmD,IAAI,EAAE,CAAC;IACPE,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE;EAClB,CAAC;EACDxD,SAAS,EAAE;IACTyD,UAAU,EAAE,CAAC;IACbC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjB9D,KAAK,EAAE;EACT,CAAC;EACDH,WAAW,EAAE;IACXkE,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE;EACV,CAAC;EACDrD,aAAa,EAAE;IACbwC,eAAe,EAAE,aAAa;IAC9Bc,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,MAAM;IACnBV,iBAAiB,EAAE,EAAE;IACrBW,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE;EAChB,CAAC;EACD/C,OAAO,EAAE;IACP6B,IAAI,EAAE;EACR,CAAC;EACDP,gBAAgB,EAAE;IAChB,GAAGK,uBAAU,CAACqB,kBAAkB;IAChClB,eAAe,EAAE,0BAA0B;IAC3CE,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE;EAClB,CAAC;EACDZ,WAAW,EAAE;IACXyB,SAAS,EAAE,EAAE;IACbX,QAAQ,EAAE,EAAE;IACZ7D,KAAK,EAAE;EACT,CAAC;EACDO,cAAc,EAAE;IACd6C,IAAI,EAAE,CAAC;IACPG,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE,QAAQ;IACxBI,OAAO,EAAE;EACX,CAAC;EACDvD,UAAU,EAAE;IACVqD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjB9D,KAAK,EAAE,MAAM;IACbwE,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE;EAChB,CAAC;EACDhE,YAAY,EAAE;IACZoD,QAAQ,EAAE,EAAE;IACZ7D,KAAK,EAAE,MAAM;IACb0E,SAAS,EAAE,QAAQ;IACnBD,YAAY,EAAE;EAChB,CAAC;EACD9D,WAAW,EAAE;IACX0C,eAAe,EAAEnE,iBAAM,CAACC,OAAO;IAC/BuE,iBAAiB,EAAE,EAAE;IACrBW,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE,CAAC;IACfK,WAAW,EAAE;EACf,CAAC;EACD/D,eAAe,EAAE;IACfZ,KAAK,EAAE,MAAM;IACb6D,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDpD,eAAe,EAAE;IACf4C,aAAa,EAAE,KAAK;IACpBK,cAAc,EAAE,QAAQ;IACxBJ,UAAU,EAAE,QAAQ;IACpBiB,SAAS,EAAE;EACb,CAAC;EACD1D,iBAAiB,EAAE;IACjBd,KAAK,EAAE,MAAM;IACb6D,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -16,29 +16,67 @@ export const OAuthWebView = ({
|
|
|
16
16
|
}) => {
|
|
17
17
|
const [isLoading, setIsLoading] = useState(true);
|
|
18
18
|
const [error, setError] = useState(null);
|
|
19
|
+
const [retryCount, setRetryCount] = useState(0);
|
|
19
20
|
const webViewRef = useRef(null);
|
|
21
|
+
const timeoutRef = useRef(null);
|
|
20
22
|
console.log('Opening OAuth WebView with URL:', url);
|
|
23
|
+
|
|
24
|
+
// Set up timeout for OAuth flow
|
|
25
|
+
React.useEffect(() => {
|
|
26
|
+
// Clear any existing timeout
|
|
27
|
+
if (timeoutRef.current) {
|
|
28
|
+
clearTimeout(timeoutRef.current);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Set a 60-second timeout for OAuth completion
|
|
32
|
+
timeoutRef.current = setTimeout(() => {
|
|
33
|
+
console.log('OAuth flow timeout - no completion detected');
|
|
34
|
+
setError('OAuth flow is taking too long. Please try again or use the browser option.');
|
|
35
|
+
setIsLoading(false);
|
|
36
|
+
}, 60000);
|
|
37
|
+
return () => {
|
|
38
|
+
if (timeoutRef.current) {
|
|
39
|
+
clearTimeout(timeoutRef.current);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}, [url]);
|
|
43
|
+
|
|
44
|
+
// Clear timeout when component unmounts or OAuth completes
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
return () => {
|
|
47
|
+
if (timeoutRef.current) {
|
|
48
|
+
clearTimeout(timeoutRef.current);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
21
52
|
const handleNavigationStateChange = navState => {
|
|
22
53
|
console.log(`Navigation state changed for ${platform}:`, navState.url);
|
|
23
54
|
|
|
55
|
+
// Check for error states first
|
|
56
|
+
if (navState.url.includes('error=') || navState.url.includes('access_denied')) {
|
|
57
|
+
console.log('OAuth error detected:', navState.url);
|
|
58
|
+
setError('Authentication was cancelled or failed. Please try again.');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
24
62
|
// 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');
|
|
63
|
+
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') || navState.url.includes('onairos.uk') && navState.url.includes('success');
|
|
26
64
|
|
|
27
|
-
//
|
|
65
|
+
// Enhanced platform-specific success patterns
|
|
28
66
|
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/]
|
|
67
|
+
reddit: [/reddit\.com\/api\/v1\/authorize\?done=true/, /reddit\.com\/api\/v1\/authorize\/success/, /reddit\.com.*code=/],
|
|
68
|
+
pinterest: [/pinterest\.com\/oauth\/success/, /pinterest\.com\/oauth\/complete/, /pinterest\.com.*code=/, /api2\.onairos\.uk\/pinterest\/callback/, /onairos\.uk.*pinterest/],
|
|
69
|
+
linkedin: [/linkedin\.com\/oauth\/success/, /linkedin\.com\/oauth\/complete/, /linkedin\.com\/uas\/oauth2\/authorization\/success/, /linkedin\.com.*code=/],
|
|
70
|
+
email: [/success/, /complete/],
|
|
71
|
+
instagram: [/instagram\.com\/oauth\/authorize\?done=true/, /instagram\.com\/oauth\/success/, /instagram\.com.*code=/, /api2\.onairos\.uk\/instagram\/callback/, /onairos\.uk.*instagram/],
|
|
72
|
+
youtube: [/accounts\.google\.com\/o\/oauth2\/approval/, /youtube\.com\/oauth\/success/, /accounts\.google\.com.*code=/, /api2\.onairos\.uk\/youtube\/callback/]
|
|
35
73
|
};
|
|
36
74
|
|
|
37
75
|
// Check for platform-specific success patterns
|
|
38
76
|
const isPlatformSuccess = platform && platformSuccessPatterns[platform] ? platformSuccessPatterns[platform].some(pattern => pattern.test(navState.url)) : false;
|
|
39
77
|
|
|
40
78
|
// 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=');
|
|
79
|
+
const isCallbackUrl = navState.url.includes('/callback') || navState.url.includes('code=') || navState.url.includes('token=') || navState.url.includes('access_token=') || navState.url.includes('api2.onairos.uk') || navState.url.includes('oauth_token=');
|
|
42
80
|
|
|
43
81
|
// Extract authorization code or token if present
|
|
44
82
|
let authCode = null;
|
|
@@ -48,17 +86,36 @@ export const OAuthWebView = ({
|
|
|
48
86
|
// Try to extract code or token using different patterns
|
|
49
87
|
const codeMatch = navState.url.match(/code=([^&]+)/);
|
|
50
88
|
const tokenMatch = navState.url.match(/(?:token|access_token)=([^&]+)/);
|
|
89
|
+
const oauthTokenMatch = navState.url.match(/oauth_token=([^&]+)/);
|
|
51
90
|
if (codeMatch && codeMatch[1]) {
|
|
52
|
-
authCode = codeMatch[1];
|
|
91
|
+
authCode = decodeURIComponent(codeMatch[1]);
|
|
53
92
|
console.log('OAuth code extracted:', authCode);
|
|
54
93
|
} else if (tokenMatch && tokenMatch[1]) {
|
|
55
|
-
authCode = tokenMatch[1];
|
|
94
|
+
authCode = decodeURIComponent(tokenMatch[1]);
|
|
95
|
+
console.log('OAuth token extracted:', authCode);
|
|
96
|
+
} else if (oauthTokenMatch && oauthTokenMatch[1]) {
|
|
97
|
+
authCode = decodeURIComponent(oauthTokenMatch[1]);
|
|
56
98
|
console.log('OAuth token extracted:', authCode);
|
|
57
99
|
}
|
|
58
100
|
|
|
59
101
|
// Call onSuccess with the extracted code/token
|
|
60
102
|
if (authCode) {
|
|
103
|
+
console.log(`Calling onSuccess for ${platform} with code:`, authCode);
|
|
104
|
+
|
|
105
|
+
// Clear timeout since OAuth completed successfully
|
|
106
|
+
if (timeoutRef.current) {
|
|
107
|
+
clearTimeout(timeoutRef.current);
|
|
108
|
+
}
|
|
61
109
|
onSuccess(authCode);
|
|
110
|
+
|
|
111
|
+
// Close the OAuth window after a short delay
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
if (onComplete) {
|
|
114
|
+
console.log('Calling onComplete to close OAuth window');
|
|
115
|
+
onComplete();
|
|
116
|
+
}
|
|
117
|
+
}, 1000);
|
|
118
|
+
return;
|
|
62
119
|
}
|
|
63
120
|
}
|
|
64
121
|
|
|
@@ -68,6 +125,7 @@ export const OAuthWebView = ({
|
|
|
68
125
|
|
|
69
126
|
// If we haven't already extracted a code/token, consider this a generic success
|
|
70
127
|
if (!authCode) {
|
|
128
|
+
console.log(`Calling onSuccess for ${platform} with generic success`);
|
|
71
129
|
onSuccess('success');
|
|
72
130
|
}
|
|
73
131
|
|
|
@@ -77,6 +135,17 @@ export const OAuthWebView = ({
|
|
|
77
135
|
onComplete();
|
|
78
136
|
}
|
|
79
137
|
}
|
|
138
|
+
|
|
139
|
+
// Handle specific redirect patterns that indicate completion
|
|
140
|
+
if (navState.url.includes('api2.onairos.uk') && (navState.url.includes('callback') || navState.url.includes('success'))) {
|
|
141
|
+
console.log(`Backend callback detected for ${platform}`);
|
|
142
|
+
onSuccess('backend_callback_success');
|
|
143
|
+
setTimeout(() => {
|
|
144
|
+
if (onComplete) {
|
|
145
|
+
onComplete();
|
|
146
|
+
}
|
|
147
|
+
}, 1500);
|
|
148
|
+
}
|
|
80
149
|
};
|
|
81
150
|
const handleLoadEnd = () => {
|
|
82
151
|
setIsLoading(false);
|
|
@@ -87,14 +156,39 @@ export const OAuthWebView = ({
|
|
|
87
156
|
nativeEvent
|
|
88
157
|
} = syntheticEvent;
|
|
89
158
|
console.error('WebView error:', nativeEvent);
|
|
90
|
-
|
|
91
|
-
|
|
159
|
+
if (retryCount < 2) {
|
|
160
|
+
console.log(`Retrying OAuth load (attempt ${retryCount + 1})`);
|
|
161
|
+
setRetryCount(prev => prev + 1);
|
|
162
|
+
setIsLoading(true);
|
|
163
|
+
setError(null);
|
|
164
|
+
|
|
165
|
+
// Retry after a short delay
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
if (webViewRef.current) {
|
|
168
|
+
webViewRef.current.reload();
|
|
169
|
+
}
|
|
170
|
+
}, 2000);
|
|
171
|
+
} else {
|
|
172
|
+
setError('Failed to load OAuth page. Please try again or use the browser option.');
|
|
173
|
+
setIsLoading(false);
|
|
174
|
+
}
|
|
92
175
|
};
|
|
93
176
|
const handleOpenInBrowser = () => {
|
|
177
|
+
console.log('Opening OAuth URL in external browser:', url);
|
|
94
178
|
Linking.openURL(url).catch(err => {
|
|
95
179
|
console.error('Failed to open URL in browser:', err);
|
|
180
|
+
setError('Unable to open browser. Please check your device settings.');
|
|
96
181
|
});
|
|
97
182
|
};
|
|
183
|
+
const handleRetry = () => {
|
|
184
|
+
console.log('Manual retry requested');
|
|
185
|
+
setError(null);
|
|
186
|
+
setIsLoading(true);
|
|
187
|
+
setRetryCount(0);
|
|
188
|
+
if (webViewRef.current) {
|
|
189
|
+
webViewRef.current.reload();
|
|
190
|
+
}
|
|
191
|
+
};
|
|
98
192
|
|
|
99
193
|
/**
|
|
100
194
|
* Get platform-specific icon
|
|
@@ -165,12 +259,19 @@ export const OAuthWebView = ({
|
|
|
165
259
|
style: styles.errorTitle
|
|
166
260
|
}, "Connection Error"), /*#__PURE__*/React.createElement(Text, {
|
|
167
261
|
style: styles.errorMessage
|
|
168
|
-
}, error), /*#__PURE__*/React.createElement(
|
|
262
|
+
}, error), /*#__PURE__*/React.createElement(View, {
|
|
263
|
+
style: styles.buttonContainer
|
|
264
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
169
265
|
style: styles.retryButton,
|
|
170
|
-
onPress:
|
|
266
|
+
onPress: handleRetry
|
|
171
267
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
172
268
|
style: styles.retryButtonText
|
|
173
|
-
}, "
|
|
269
|
+
}, "Retry")), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
270
|
+
style: styles.browserButton,
|
|
271
|
+
onPress: handleOpenInBrowser
|
|
272
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
273
|
+
style: styles.browserButtonText
|
|
274
|
+
}, "Open in Browser")))));
|
|
174
275
|
}
|
|
175
276
|
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
176
277
|
style: styles.container
|
|
@@ -224,11 +325,35 @@ export const OAuthWebView = ({
|
|
|
224
325
|
mixedContentMode: "compatibility",
|
|
225
326
|
thirdPartyCookiesEnabled: true,
|
|
226
327
|
sharedCookiesEnabled: true,
|
|
227
|
-
|
|
328
|
+
cacheEnabled: true,
|
|
329
|
+
allowsBackForwardNavigationGestures: true,
|
|
330
|
+
allowsLinkPreview: false,
|
|
331
|
+
userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1",
|
|
228
332
|
onShouldStartLoadWithRequest: request => {
|
|
229
|
-
|
|
333
|
+
console.log('WebView attempting to load:', request.url);
|
|
334
|
+
|
|
335
|
+
// Block about:srcdoc and other problematic URLs
|
|
336
|
+
if (request.url.startsWith('about:') || request.url.startsWith('data:') || request.url === 'about:blank') {
|
|
337
|
+
console.log('Blocking problematic URL:', request.url);
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Allow all other requests
|
|
230
342
|
return true;
|
|
231
343
|
},
|
|
344
|
+
onLoadStart: syntheticEvent => {
|
|
345
|
+
const {
|
|
346
|
+
nativeEvent
|
|
347
|
+
} = syntheticEvent;
|
|
348
|
+
console.log('WebView load started:', nativeEvent.url);
|
|
349
|
+
setIsLoading(true);
|
|
350
|
+
},
|
|
351
|
+
onLoadProgress: syntheticEvent => {
|
|
352
|
+
const {
|
|
353
|
+
nativeEvent
|
|
354
|
+
} = syntheticEvent;
|
|
355
|
+
console.log('WebView load progress:', nativeEvent.progress);
|
|
356
|
+
},
|
|
232
357
|
renderError: errorName => /*#__PURE__*/React.createElement(View, {
|
|
233
358
|
style: styles.errorContainer
|
|
234
359
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
@@ -241,10 +366,10 @@ export const OAuthWebView = ({
|
|
|
241
366
|
style: styles.errorMessage
|
|
242
367
|
}, "Failed to load the authentication page. Error: ", errorName), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
243
368
|
style: styles.retryButton,
|
|
244
|
-
onPress:
|
|
369
|
+
onPress: handleRetry
|
|
245
370
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
246
371
|
style: styles.retryButtonText
|
|
247
|
-
}, "
|
|
372
|
+
}, "Retry"))),
|
|
248
373
|
renderLoading: () => /*#__PURE__*/React.createElement(View, {
|
|
249
374
|
style: styles.loadingContainer
|
|
250
375
|
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
@@ -252,7 +377,30 @@ export const OAuthWebView = ({
|
|
|
252
377
|
color: COLORS.primary
|
|
253
378
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
254
379
|
style: styles.loadingText
|
|
255
|
-
}, "Loading ", platform, "..."))
|
|
380
|
+
}, "Loading ", platform, "...")),
|
|
381
|
+
injectedJavaScript: `
|
|
382
|
+
// Prevent white screen issues
|
|
383
|
+
window.addEventListener('error', function(e) {
|
|
384
|
+
console.log('JavaScript error:', e.message);
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
// Handle OAuth redirects
|
|
388
|
+
window.addEventListener('beforeunload', function(e) {
|
|
389
|
+
console.log('Page unloading:', window.location.href);
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
// Monitor for OAuth completion
|
|
393
|
+
setInterval(function() {
|
|
394
|
+
if (window.location.href.includes('code=') ||
|
|
395
|
+
window.location.href.includes('access_token=') ||
|
|
396
|
+
window.location.href.includes('oauth_token=') ||
|
|
397
|
+
window.location.href.includes('api2.onairos.uk')) {
|
|
398
|
+
console.log('OAuth completion detected:', window.location.href);
|
|
399
|
+
}
|
|
400
|
+
}, 1000);
|
|
401
|
+
|
|
402
|
+
true; // Required for injected JavaScript
|
|
403
|
+
`
|
|
256
404
|
}));
|
|
257
405
|
};
|
|
258
406
|
const styles = StyleSheet.create({
|
|
@@ -288,10 +436,12 @@ const styles = StyleSheet.create({
|
|
|
288
436
|
zIndex: 10
|
|
289
437
|
},
|
|
290
438
|
browserButton: {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
439
|
+
backgroundColor: 'transparent',
|
|
440
|
+
borderWidth: 1,
|
|
441
|
+
borderColor: '#666',
|
|
442
|
+
paddingHorizontal: 24,
|
|
443
|
+
paddingVertical: 12,
|
|
444
|
+
borderRadius: 8
|
|
295
445
|
},
|
|
296
446
|
webView: {
|
|
297
447
|
flex: 1
|
|
@@ -330,12 +480,24 @@ const styles = StyleSheet.create({
|
|
|
330
480
|
backgroundColor: COLORS.primary,
|
|
331
481
|
paddingHorizontal: 24,
|
|
332
482
|
paddingVertical: 12,
|
|
333
|
-
borderRadius: 8
|
|
483
|
+
borderRadius: 8,
|
|
484
|
+
marginRight: 10
|
|
334
485
|
},
|
|
335
486
|
retryButtonText: {
|
|
336
487
|
color: '#fff',
|
|
337
488
|
fontSize: 16,
|
|
338
489
|
fontWeight: '600'
|
|
490
|
+
},
|
|
491
|
+
buttonContainer: {
|
|
492
|
+
flexDirection: 'row',
|
|
493
|
+
justifyContent: 'center',
|
|
494
|
+
alignItems: 'center',
|
|
495
|
+
marginTop: 10
|
|
496
|
+
},
|
|
497
|
+
browserButtonText: {
|
|
498
|
+
color: '#666',
|
|
499
|
+
fontSize: 16,
|
|
500
|
+
fontWeight: '600'
|
|
339
501
|
}
|
|
340
502
|
});
|
|
341
503
|
//# sourceMappingURL=OAuthWebView.js.map
|
|
@@ -1 +1 @@
|
|
|
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","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","userAgent","onShouldStartLoadWithRequest","request","renderError","errorName","renderLoading","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":[]}
|
|
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","retryCount","setRetryCount","webViewRef","timeoutRef","console","log","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalRedirect","startsWith","platformSuccessPatterns","reddit","pinterest","linkedin","email","instagram","youtube","isPlatformSuccess","some","pattern","test","isCallbackUrl","authCode","codeMatch","match","tokenMatch","oauthTokenMatch","decodeURIComponent","handleLoadEnd","handleError","syntheticEvent","nativeEvent","prev","reload","handleOpenInBrowser","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","slice","errorContainer","errorTitle","errorMessage","buttonContainer","retryButton","retryButtonText","browserButton","browserButtonText","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","cacheEnabled","allowsBackForwardNavigationGestures","allowsLinkPreview","userAgent","onShouldStartLoadWithRequest","request","onLoadStart","onLoadProgress","progress","renderError","errorName","renderLoading","loadingContainer","loadingText","injectedJavaScript","create","flex","backgroundColor","flexDirection","alignItems","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","marginLeft","fontSize","fontWeight","padding","position","left","zIndex","borderWidth","borderColor","paddingVertical","borderRadius","absoluteFillObject","marginTop","marginBottom","textAlign","marginRight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAC/C,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,gBAAgB,EAChBC,iBAAiB,EACjBC,YAAY,EACZC,UAAU,EACVC,OAAO,QACF,cAAc;AACrB,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,OAAOC,IAAI,MAAM,yCAAyC;AAC1D,SAASC,MAAM,QAAQ,iBAAiB;AAExC,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGN,UAAU,CAACO,GAAG,CAAC,QAAQ,CAAC;AAUlD,OAAO,MAAMC,YAAyC,GAAGA,CAAC;EACxDC,GAAG;EACHC,OAAO;EACPC,SAAS;EACTC,QAAQ,GAAG,UAAU;EACrBC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGvB,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACwB,KAAK,EAAEC,QAAQ,CAAC,GAAGzB,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAAC0B,UAAU,EAAEC,aAAa,CAAC,GAAG3B,QAAQ,CAAC,CAAC,CAAC;EAC/C,MAAM4B,UAAU,GAAG3B,MAAM,CAAU,IAAI,CAAC;EACxC,MAAM4B,UAAU,GAAG5B,MAAM,CAAuC,IAAI,CAAC;EAErE6B,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEd,GAAG,CAAC;;EAEnD;EACAlB,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB;IACA,IAAIH,UAAU,CAACI,OAAO,EAAE;MACtBC,YAAY,CAACL,UAAU,CAACI,OAAO,CAAC;IAClC;;IAEA;IACAJ,UAAU,CAACI,OAAO,GAAGE,UAAU,CAAC,MAAM;MACpCL,OAAO,CAACC,GAAG,CAAC,6CAA6C,CAAC;MAC1DN,QAAQ,CAAC,4EAA4E,CAAC;MACtFF,YAAY,CAAC,KAAK,CAAC;IACrB,CAAC,EAAE,KAAK,CAAC;IAET,OAAO,MAAM;MACX,IAAIM,UAAU,CAACI,OAAO,EAAE;QACtBC,YAAY,CAACL,UAAU,CAACI,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,CAAChB,GAAG,CAAC,CAAC;;EAET;EACAlB,KAAK,CAACiC,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,IAAIH,UAAU,CAACI,OAAO,EAAE;QACtBC,YAAY,CAACL,UAAU,CAACI,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,2BAA2B,GAAIC,QAAa,IAAK;IACrDP,OAAO,CAACC,GAAG,CAAC,gCAAgCX,QAAQ,GAAG,EAAEiB,QAAQ,CAACpB,GAAG,CAAC;;IAEtE;IACA,IAAIoB,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,QAAQ,CAAC,IAAID,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,eAAe,CAAC,EAAE;MAC7ER,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEM,QAAQ,CAACpB,GAAG,CAAC;MAClDQ,QAAQ,CAAC,2DAA2D,CAAC;MACrE;IACF;;IAEA;IACA,MAAMc,eAAe,GACnBF,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,oBAAoB,CAAC,IAC3CD,QAAQ,CAACpB,GAAG,CAACuB,UAAU,CAAC,yBAAyB,CAAC,IAClDH,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,YAAY,CAAC,IAAID,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,SAAS,CACvE;;IAED;IACA,MAAMG,uBAAiD,GAAG;MACxDC,MAAM,EAAE,CACN,4CAA4C,EAC5C,0CAA0C,EAC1C,oBAAoB,CACrB;MACDC,SAAS,EAAE,CACT,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,wCAAwC,EACxC,wBAAwB,CACzB;MACDC,QAAQ,EAAE,CACR,+BAA+B,EAC/B,gCAAgC,EAChC,oDAAoD,EACpD,sBAAsB,CACvB;MACDC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;MAC9BC,SAAS,EAAE,CACT,6CAA6C,EAC7C,gCAAgC,EAChC,uBAAuB,EACvB,wCAAwC,EACxC,wBAAwB,CACzB;MACDC,OAAO,EAAE,CACP,4CAA4C,EAC5C,8BAA8B,EAC9B,8BAA8B,EAC9B,sCAAsC;IAE1C,CAAC;;IAED;IACA,MAAMC,iBAAiB,GAAG5B,QAAQ,IAAIqB,uBAAuB,CAACrB,QAAQ,CAAC,GACrEqB,uBAAuB,CAACrB,QAAQ,CAAC,CAAC6B,IAAI,CAACC,OAAO,IAAIA,OAAO,CAACC,IAAI,CAACd,QAAQ,CAACpB,GAAG,CAAC,CAAC,GAC7E,KAAK;;IAEP;IACA,MAAMmC,aAAa,GACjBf,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,WAAW,CAAC,IAClCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,OAAO,CAAC,IAC9BD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,QAAQ,CAAC,IAC/BD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,eAAe,CAAC,IACtCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,iBAAiB,CAAC,IACxCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,cAAc,CACrC;;IAED;IACA,IAAIe,QAAQ,GAAG,IAAI;IACnB,IAAID,aAAa,EAAE;MACjBtB,OAAO,CAACC,GAAG,CAAC,gDAAgD,CAAC;;MAE7D;MACA,MAAMuB,SAAS,GAAGjB,QAAQ,CAACpB,GAAG,CAACsC,KAAK,CAAC,cAAc,CAAC;MACpD,MAAMC,UAAU,GAAGnB,QAAQ,CAACpB,GAAG,CAACsC,KAAK,CAAC,gCAAgC,CAAC;MACvE,MAAME,eAAe,GAAGpB,QAAQ,CAACpB,GAAG,CAACsC,KAAK,CAAC,qBAAqB,CAAC;MAEjE,IAAID,SAAS,IAAIA,SAAS,CAAC,CAAC,CAAC,EAAE;QAC7BD,QAAQ,GAAGK,kBAAkB,CAACJ,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3CxB,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEsB,QAAQ,CAAC;MAChD,CAAC,MAAM,IAAIG,UAAU,IAAIA,UAAU,CAAC,CAAC,CAAC,EAAE;QACtCH,QAAQ,GAAGK,kBAAkB,CAACF,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5C1B,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEsB,QAAQ,CAAC;MACjD,CAAC,MAAM,IAAII,eAAe,IAAIA,eAAe,CAAC,CAAC,CAAC,EAAE;QAChDJ,QAAQ,GAAGK,kBAAkB,CAACD,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD3B,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEsB,QAAQ,CAAC;MACjD;;MAEA;MACA,IAAIA,QAAQ,EAAE;QACZvB,OAAO,CAACC,GAAG,CAAC,yBAAyBX,QAAQ,aAAa,EAAEiC,QAAQ,CAAC;;QAErE;QACA,IAAIxB,UAAU,CAACI,OAAO,EAAE;UACtBC,YAAY,CAACL,UAAU,CAACI,OAAO,CAAC;QAClC;QAEAd,SAAS,CAACkC,QAAQ,CAAC;;QAEnB;QACAlB,UAAU,CAAC,MAAM;UACf,IAAId,UAAU,EAAE;YACdS,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;YACvDV,UAAU,CAAC,CAAC;UACd;QACF,CAAC,EAAE,IAAI,CAAC;QACR;MACF;IACF;;IAEA;IACA,IAAIkB,eAAe,IAAIS,iBAAiB,EAAE;MACxClB,OAAO,CAACC,GAAG,CAAC,wBAAwBX,QAAQ,EAAE,CAAC;;MAE/C;MACA,IAAI,CAACiC,QAAQ,EAAE;QACbvB,OAAO,CAACC,GAAG,CAAC,yBAAyBX,QAAQ,uBAAuB,CAAC;QACrED,SAAS,CAAC,SAAS,CAAC;MACtB;;MAEA;MACA,IAAIE,UAAU,EAAE;QACdS,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;QACvDV,UAAU,CAAC,CAAC;MACd;IACF;;IAEA;IACA,IAAIgB,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,iBAAiB,CAAC,KACvCD,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,UAAU,CAAC,IAAID,QAAQ,CAACpB,GAAG,CAACqB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;MAC3ER,OAAO,CAACC,GAAG,CAAC,iCAAiCX,QAAQ,EAAE,CAAC;MACxDD,SAAS,CAAC,0BAA0B,CAAC;MAErCgB,UAAU,CAAC,MAAM;QACf,IAAId,UAAU,EAAE;UACdA,UAAU,CAAC,CAAC;QACd;MACF,CAAC,EAAE,IAAI,CAAC;IACV;EACF,CAAC;EAED,MAAMsC,aAAa,GAAGA,CAAA,KAAM;IAC1BpC,YAAY,CAAC,KAAK,CAAC;IACnBE,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC;EAED,MAAMmC,WAAW,GAAIC,cAAmB,IAAK;IAC3C,MAAM;MAAEC;IAAY,CAAC,GAAGD,cAAc;IACtC/B,OAAO,CAACN,KAAK,CAAC,gBAAgB,EAAEsC,WAAW,CAAC;IAE5C,IAAIpC,UAAU,GAAG,CAAC,EAAE;MAClBI,OAAO,CAACC,GAAG,CAAC,gCAAgCL,UAAU,GAAG,CAAC,GAAG,CAAC;MAC9DC,aAAa,CAACoC,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC;MAC/BxC,YAAY,CAAC,IAAI,CAAC;MAClBE,QAAQ,CAAC,IAAI,CAAC;;MAEd;MACAU,UAAU,CAAC,MAAM;QACf,IAAIP,UAAU,CAACK,OAAO,EAAE;UACtBL,UAAU,CAACK,OAAO,CAAC+B,MAAM,CAAC,CAAC;QAC7B;MACF,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,MAAM;MACLvC,QAAQ,CAAC,wEAAwE,CAAC;MAClFF,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC;EAED,MAAM0C,mBAAmB,GAAGA,CAAA,KAAM;IAChCnC,OAAO,CAACC,GAAG,CAAC,wCAAwC,EAAEd,GAAG,CAAC;IAC1DR,OAAO,CAACyD,OAAO,CAACjD,GAAG,CAAC,CAACkD,KAAK,CAACC,GAAG,IAAI;MAChCtC,OAAO,CAACN,KAAK,CAAC,gCAAgC,EAAE4C,GAAG,CAAC;MACpD3C,QAAQ,CAAC,4DAA4D,CAAC;IACxE,CAAC,CAAC;EACJ,CAAC;EAED,MAAM4C,WAAW,GAAGA,CAAA,KAAM;IACxBvC,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACrCN,QAAQ,CAAC,IAAI,CAAC;IACdF,YAAY,CAAC,IAAI,CAAC;IAClBI,aAAa,CAAC,CAAC,CAAC;IAEhB,IAAIC,UAAU,CAACK,OAAO,EAAE;MACtBL,UAAU,CAACK,OAAO,CAAC+B,MAAM,CAAC,CAAC;IAC7B;EACF,CAAC;;EAED;AACF;AACA;EACE,MAAMM,eAAe,GAAIlD,QAAgB,IAAa;IACpD,QAAQA,QAAQ;MACd,KAAK,WAAW;QACd,OAAO,cAAc;MACvB,KAAK,SAAS;QACZ,OAAO,eAAe;MACxB,KAAK,WAAW;QACd,OAAO,UAAU;MACnB,KAAK,QAAQ;QACX,OAAO,OAAO;MAChB,KAAK,OAAO;QACV,OAAO,OAAO;MAChB;QACE,OAAO,MAAM;IACjB;EACF,CAAC;;EAED;AACF;AACA;EACE,MAAMmD,gBAAgB,GAAInD,QAAgB,IAAa;IACrD,QAAQA,QAAQ;MACd,KAAK,WAAW;QACd,OAAO,SAAS;MAClB,KAAK,SAAS;QACZ,OAAO,SAAS;MAClB,KAAK,WAAW;QACd,OAAO,SAAS;MAClB,KAAK,QAAQ;QACX,OAAO,SAAS;MAClB,KAAK,OAAO;QACV,OAAO,SAAS;MAClB;QACE,OAAOR,MAAM,CAAC4D,OAAO;IACzB;EACF,CAAC;EAED,IAAIhD,KAAK,EAAE;IACT,oBACEzB,KAAA,CAAA0E,aAAA,CAAClE,YAAY;MAACmE,KAAK,EAAEC,MAAM,CAACC;IAAU,gBACpC7E,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACE;IAAO,gBACzB9E,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;MAACyE,OAAO,EAAE5D,OAAQ;MAACwD,KAAK,EAAEC,MAAM,CAACI;IAAY,gBAC5DhF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;MAACqE,IAAI,EAAC,OAAO;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAM,CAAE,CAC3B,CAAC,eACnBnF,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACQ;IAAe,gBACjCpF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;MACHqE,IAAI,EAAEV,eAAe,CAAClD,QAAQ,CAAE;MAChC6D,IAAI,EAAE,EAAG;MACTC,KAAK,EAAEX,gBAAgB,CAACnD,QAAQ;IAAE,CACnC,CAAC,eACFrB,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACS;IAAU,GAAEhE,QAAQ,CAACiE,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGlE,QAAQ,CAACmE,KAAK,CAAC,CAAC,CAAC,EAAC,QAAY,CAC7F,CACF,CAAC,eAEPxF,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACa;IAAe,gBACjCzF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;MAACqE,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAS,CAAE,CAAC,eACvDnF,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACc;IAAW,GAAC,kBAAsB,CAAC,eACvD1F,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACe;IAAa,GAAElE,KAAY,CAAC,eAChDzB,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACgB;IAAgB,gBAClC5F,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;MAACqE,KAAK,EAAEC,MAAM,CAACiB,WAAY;MAACd,OAAO,EAAET;IAAY,gBAChEtE,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACkB;IAAgB,GAAC,OAAW,CAChC,CAAC,eACnB9F,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;MAACqE,KAAK,EAAEC,MAAM,CAACmB,aAAc;MAAChB,OAAO,EAAEb;IAAoB,gBAC1ElE,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACoB;IAAkB,GAAC,iBAAqB,CAC5C,CACd,CACF,CACM,CAAC;EAEnB;EAEA,oBACEhG,KAAA,CAAA0E,aAAA,CAAClE,YAAY;IAACmE,KAAK,EAAEC,MAAM,CAACC;EAAU,gBACpC7E,KAAA,CAAA0E,aAAA,CAACvE,IAAI;IAACwE,KAAK,EAAEC,MAAM,CAACE;EAAO,gBACzB9E,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;IAACyE,OAAO,EAAE5D,OAAQ;IAACwD,KAAK,EAAEC,MAAM,CAACI;EAAY,gBAC5DhF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;IAACqE,IAAI,EAAC,OAAO;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAM,CAAE,CAC3B,CAAC,eACnBnF,KAAA,CAAA0E,aAAA,CAACvE,IAAI;IAACwE,KAAK,EAAEC,MAAM,CAACQ;EAAe,gBACjCpF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;IACHqE,IAAI,EAAEV,eAAe,CAAClD,QAAQ,CAAE;IAChC6D,IAAI,EAAE,EAAG;IACTC,KAAK,EAAEX,gBAAgB,CAACnD,QAAQ;EAAE,CACnC,CAAC,eACFrB,KAAA,CAAA0E,aAAA,CAACtE,IAAI;IAACuE,KAAK,EAAEC,MAAM,CAACS;EAAU,GAAEhE,QAAQ,CAACiE,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGlE,QAAQ,CAACmE,KAAK,CAAC,CAAC,CAAC,EAAC,QAAY,CAC7F,CAAC,eACPxF,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;IAACyE,OAAO,EAAEb,mBAAoB;IAACS,KAAK,EAAEC,MAAM,CAACmB;EAAc,gBAC1E/F,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;IAACqE,IAAI,EAAC,iBAAiB;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAM,CAAE,CACrC,CACd,CAAC,eAEPnF,KAAA,CAAA0E,aAAA,CAAC/D,OAAO;IACNsF,GAAG,EAAEpE,UAAW;IAChBqE,MAAM,EAAE;MAAEC,GAAG,EAAEjF;IAAI,CAAE;IACrBkF,uBAAuB,EAAE/D,2BAA4B;IACrDgE,SAAS,EAAEzC,aAAc;IACzB0C,OAAO,EAAEzC,WAAY;IACrB0C,WAAW,EAAGzC,cAAc,IAAK;MAC/B,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtC/B,OAAO,CAACN,KAAK,CAAC,qBAAqB,EAAEsC,WAAW,CAAC;MACjDrC,QAAQ,CAAC,mEAAmE,CAAC;MAC7EF,YAAY,CAAC,KAAK,CAAC;IACrB,CAAE;IACFmD,KAAK,EAAEC,MAAM,CAAC4B,OAAQ;IACtBC,iBAAiB,EAAE,IAAK;IACxBC,iBAAiB,EAAE,IAAK;IACxBC,mBAAmB,EAAE,IAAK;IAC1BC,eAAe,EAAE,IAAK;IACtBC,yBAAyB,EAAE,IAAK;IAChCC,+BAA+B,EAAE,KAAM;IACvCC,gBAAgB,EAAC,eAAe;IAChCC,wBAAwB,EAAE,IAAK;IAC/BC,oBAAoB,EAAE,IAAK;IAC3BC,YAAY,EAAE,IAAK;IACnBC,mCAAmC,EAAE,IAAK;IAC1CC,iBAAiB,EAAE,KAAM;IACzBC,SAAS,EAAC,yIAAyI;IACnJC,4BAA4B,EAAGC,OAAO,IAAK;MACzCxF,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAEuF,OAAO,CAACrG,GAAG,CAAC;;MAEvD;MACA,IAAIqG,OAAO,CAACrG,GAAG,CAACuB,UAAU,CAAC,QAAQ,CAAC,IAChC8E,OAAO,CAACrG,GAAG,CAACuB,UAAU,CAAC,OAAO,CAAC,IAC/B8E,OAAO,CAACrG,GAAG,KAAK,aAAa,EAAE;QACjCa,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAEuF,OAAO,CAACrG,GAAG,CAAC;QACrD,OAAO,KAAK;MACd;;MAEA;MACA,OAAO,IAAI;IACb,CAAE;IACFsG,WAAW,EAAG1D,cAAc,IAAK;MAC/B,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtC/B,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAE+B,WAAW,CAAC7C,GAAG,CAAC;MACrDM,YAAY,CAAC,IAAI,CAAC;IACpB,CAAE;IACFiG,cAAc,EAAG3D,cAAc,IAAK;MAClC,MAAM;QAAEC;MAAY,CAAC,GAAGD,cAAc;MACtC/B,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAE+B,WAAW,CAAC2D,QAAQ,CAAC;IAC7D,CAAE;IACFC,WAAW,EAAGC,SAAS,iBACrB5H,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACa;IAAe,gBACjCzF,KAAA,CAAA0E,aAAA,CAAC9D,IAAI;MAACqE,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAS,CAAE,CAAC,eACvDnF,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACc;IAAW,GAAC,eAAmB,CAAC,eACpD1F,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACe;IAAa,GAAC,iDACe,EAACiC,SAC5C,CAAC,eACP5H,KAAA,CAAA0E,aAAA,CAACpE,gBAAgB;MAACqE,KAAK,EAAEC,MAAM,CAACiB,WAAY;MAACd,OAAO,EAAET;IAAY,gBAChEtE,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACkB;IAAgB,GAAC,OAAW,CAChC,CACd,CACN;IACF+B,aAAa,EAAEA,CAAA,kBACb7H,KAAA,CAAA0E,aAAA,CAACvE,IAAI;MAACwE,KAAK,EAAEC,MAAM,CAACkD;IAAiB,gBACnC9H,KAAA,CAAA0E,aAAA,CAACnE,iBAAiB;MAAC2E,IAAI,EAAC,OAAO;MAACC,KAAK,EAAEtE,MAAM,CAAC4D;IAAQ,CAAE,CAAC,eACzDzE,KAAA,CAAA0E,aAAA,CAACtE,IAAI;MAACuE,KAAK,EAAEC,MAAM,CAACmD;IAAY,GAAC,UAAQ,EAAC1G,QAAQ,EAAC,KAAS,CACxD,CACN;IACF2G,kBAAkB,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAAU,CACH,CACW,CAAC;AAEnB,CAAC;AAED,MAAMpD,MAAM,GAAGvE,UAAU,CAAC4H,MAAM,CAAC;EAC/BpD,SAAS,EAAE;IACTqD,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDrD,MAAM,EAAE;IACNsD,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBtH,MAAM,EAAE,EAAE;IACVoH,eAAe,EAAE,SAAS;IAC1BG,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAE,SAAS;IAC5BC,iBAAiB,EAAE;EACrB,CAAC;EACDpD,cAAc,EAAE;IACd8C,IAAI,EAAE,CAAC;IACPE,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE;EAClB,CAAC;EACDpD,SAAS,EAAE;IACTqD,UAAU,EAAE,CAAC;IACbC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBzD,KAAK,EAAE;EACT,CAAC;EACDH,WAAW,EAAE;IACX6D,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE;EACV,CAAC;EACDjD,aAAa,EAAE;IACboC,eAAe,EAAE,aAAa;IAC9Bc,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,MAAM;IACnBV,iBAAiB,EAAE,EAAE;IACrBW,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE;EAChB,CAAC;EACD5C,OAAO,EAAE;IACP0B,IAAI,EAAE;EACR,CAAC;EACDJ,gBAAgB,EAAE;IAChB,GAAGzH,UAAU,CAACgJ,kBAAkB;IAChClB,eAAe,EAAE,0BAA0B;IAC3CE,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE;EAClB,CAAC;EACDV,WAAW,EAAE;IACXuB,SAAS,EAAE,EAAE;IACbX,QAAQ,EAAE,EAAE;IACZxD,KAAK,EAAE;EACT,CAAC;EACDM,cAAc,EAAE;IACdyC,IAAI,EAAE,CAAC;IACPG,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE,QAAQ;IACxBI,OAAO,EAAE;EACX,CAAC;EACDnD,UAAU,EAAE;IACViD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBzD,KAAK,EAAE,MAAM;IACbmE,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE;EAChB,CAAC;EACD5D,YAAY,EAAE;IACZgD,QAAQ,EAAE,EAAE;IACZxD,KAAK,EAAE,MAAM;IACbqE,SAAS,EAAE,QAAQ;IACnBD,YAAY,EAAE;EAChB,CAAC;EACD1D,WAAW,EAAE;IACXsC,eAAe,EAAEtH,MAAM,CAAC4D,OAAO;IAC/B+D,iBAAiB,EAAE,EAAE;IACrBW,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE,CAAC;IACfK,WAAW,EAAE;EACf,CAAC;EACD3D,eAAe,EAAE;IACfX,KAAK,EAAE,MAAM;IACbwD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDhD,eAAe,EAAE;IACfwC,aAAa,EAAE,KAAK;IACpBK,cAAc,EAAE,QAAQ;IACxBJ,UAAU,EAAE,QAAQ;IACpBiB,SAAS,EAAE;EACb,CAAC;EACDtD,iBAAiB,EAAE;IACjBb,KAAK,EAAE,MAAM;IACbwD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAqapD,CAAC"}
|
package/package.json
CHANGED
|
@@ -32,44 +32,94 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
32
32
|
}) => {
|
|
33
33
|
const [isLoading, setIsLoading] = useState(true);
|
|
34
34
|
const [error, setError] = useState<string | null>(null);
|
|
35
|
+
const [retryCount, setRetryCount] = useState(0);
|
|
35
36
|
const webViewRef = useRef<WebView>(null);
|
|
37
|
+
const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
36
38
|
|
|
37
39
|
console.log('Opening OAuth WebView with URL:', url);
|
|
38
40
|
|
|
41
|
+
// Set up timeout for OAuth flow
|
|
42
|
+
React.useEffect(() => {
|
|
43
|
+
// Clear any existing timeout
|
|
44
|
+
if (timeoutRef.current) {
|
|
45
|
+
clearTimeout(timeoutRef.current);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Set a 60-second timeout for OAuth completion
|
|
49
|
+
timeoutRef.current = setTimeout(() => {
|
|
50
|
+
console.log('OAuth flow timeout - no completion detected');
|
|
51
|
+
setError('OAuth flow is taking too long. Please try again or use the browser option.');
|
|
52
|
+
setIsLoading(false);
|
|
53
|
+
}, 60000);
|
|
54
|
+
|
|
55
|
+
return () => {
|
|
56
|
+
if (timeoutRef.current) {
|
|
57
|
+
clearTimeout(timeoutRef.current);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}, [url]);
|
|
61
|
+
|
|
62
|
+
// Clear timeout when component unmounts or OAuth completes
|
|
63
|
+
React.useEffect(() => {
|
|
64
|
+
return () => {
|
|
65
|
+
if (timeoutRef.current) {
|
|
66
|
+
clearTimeout(timeoutRef.current);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
39
71
|
const handleNavigationStateChange = (navState: any) => {
|
|
40
72
|
console.log(`Navigation state changed for ${platform}:`, navState.url);
|
|
41
73
|
|
|
74
|
+
// Check for error states first
|
|
75
|
+
if (navState.url.includes('error=') || navState.url.includes('access_denied')) {
|
|
76
|
+
console.log('OAuth error detected:', navState.url);
|
|
77
|
+
setError('Authentication was cancelled or failed. Please try again.');
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
42
81
|
// Check for the final redirect to onairos.uk domain (this means backend callback completed)
|
|
43
82
|
const isFinalRedirect = (
|
|
44
83
|
navState.url.includes('onairos.uk/Home') ||
|
|
45
84
|
navState.url.includes('onairos.uk/home') ||
|
|
46
85
|
navState.url.includes('onairos.uk/success') ||
|
|
47
|
-
navState.url.startsWith('https://onairos.uk/Home')
|
|
86
|
+
navState.url.startsWith('https://onairos.uk/Home') ||
|
|
87
|
+
navState.url.includes('onairos.uk') && navState.url.includes('success')
|
|
48
88
|
);
|
|
49
89
|
|
|
50
|
-
//
|
|
90
|
+
// Enhanced platform-specific success patterns
|
|
51
91
|
const platformSuccessPatterns: Record<string, RegExp[]> = {
|
|
52
92
|
reddit: [
|
|
53
93
|
/reddit\.com\/api\/v1\/authorize\?done=true/,
|
|
54
|
-
/reddit\.com\/api\/v1\/authorize\/success
|
|
94
|
+
/reddit\.com\/api\/v1\/authorize\/success/,
|
|
95
|
+
/reddit\.com.*code=/
|
|
55
96
|
],
|
|
56
97
|
pinterest: [
|
|
57
98
|
/pinterest\.com\/oauth\/success/,
|
|
58
|
-
/pinterest\.com\/oauth\/complete
|
|
99
|
+
/pinterest\.com\/oauth\/complete/,
|
|
100
|
+
/pinterest\.com.*code=/,
|
|
101
|
+
/api2\.onairos\.uk\/pinterest\/callback/,
|
|
102
|
+
/onairos\.uk.*pinterest/
|
|
59
103
|
],
|
|
60
104
|
linkedin: [
|
|
61
105
|
/linkedin\.com\/oauth\/success/,
|
|
62
106
|
/linkedin\.com\/oauth\/complete/,
|
|
63
|
-
/linkedin\.com\/uas\/oauth2\/authorization\/success
|
|
107
|
+
/linkedin\.com\/uas\/oauth2\/authorization\/success/,
|
|
108
|
+
/linkedin\.com.*code=/
|
|
64
109
|
],
|
|
65
|
-
email: [/success/],
|
|
110
|
+
email: [/success/, /complete/],
|
|
66
111
|
instagram: [
|
|
67
112
|
/instagram\.com\/oauth\/authorize\?done=true/,
|
|
68
|
-
/instagram\.com\/oauth\/success
|
|
113
|
+
/instagram\.com\/oauth\/success/,
|
|
114
|
+
/instagram\.com.*code=/,
|
|
115
|
+
/api2\.onairos\.uk\/instagram\/callback/,
|
|
116
|
+
/onairos\.uk.*instagram/
|
|
69
117
|
],
|
|
70
118
|
youtube: [
|
|
71
119
|
/accounts\.google\.com\/o\/oauth2\/approval/,
|
|
72
|
-
/youtube\.com\/oauth\/success
|
|
120
|
+
/youtube\.com\/oauth\/success/,
|
|
121
|
+
/accounts\.google\.com.*code=/,
|
|
122
|
+
/api2\.onairos\.uk\/youtube\/callback/
|
|
73
123
|
]
|
|
74
124
|
};
|
|
75
125
|
|
|
@@ -83,7 +133,9 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
83
133
|
navState.url.includes('/callback') ||
|
|
84
134
|
navState.url.includes('code=') ||
|
|
85
135
|
navState.url.includes('token=') ||
|
|
86
|
-
navState.url.includes('access_token=')
|
|
136
|
+
navState.url.includes('access_token=') ||
|
|
137
|
+
navState.url.includes('api2.onairos.uk') ||
|
|
138
|
+
navState.url.includes('oauth_token=')
|
|
87
139
|
);
|
|
88
140
|
|
|
89
141
|
// Extract authorization code or token if present
|
|
@@ -94,18 +146,38 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
94
146
|
// Try to extract code or token using different patterns
|
|
95
147
|
const codeMatch = navState.url.match(/code=([^&]+)/);
|
|
96
148
|
const tokenMatch = navState.url.match(/(?:token|access_token)=([^&]+)/);
|
|
149
|
+
const oauthTokenMatch = navState.url.match(/oauth_token=([^&]+)/);
|
|
97
150
|
|
|
98
151
|
if (codeMatch && codeMatch[1]) {
|
|
99
|
-
authCode = codeMatch[1];
|
|
152
|
+
authCode = decodeURIComponent(codeMatch[1]);
|
|
100
153
|
console.log('OAuth code extracted:', authCode);
|
|
101
154
|
} else if (tokenMatch && tokenMatch[1]) {
|
|
102
|
-
authCode = tokenMatch[1];
|
|
155
|
+
authCode = decodeURIComponent(tokenMatch[1]);
|
|
156
|
+
console.log('OAuth token extracted:', authCode);
|
|
157
|
+
} else if (oauthTokenMatch && oauthTokenMatch[1]) {
|
|
158
|
+
authCode = decodeURIComponent(oauthTokenMatch[1]);
|
|
103
159
|
console.log('OAuth token extracted:', authCode);
|
|
104
160
|
}
|
|
105
161
|
|
|
106
162
|
// Call onSuccess with the extracted code/token
|
|
107
163
|
if (authCode) {
|
|
164
|
+
console.log(`Calling onSuccess for ${platform} with code:`, authCode);
|
|
165
|
+
|
|
166
|
+
// Clear timeout since OAuth completed successfully
|
|
167
|
+
if (timeoutRef.current) {
|
|
168
|
+
clearTimeout(timeoutRef.current);
|
|
169
|
+
}
|
|
170
|
+
|
|
108
171
|
onSuccess(authCode);
|
|
172
|
+
|
|
173
|
+
// Close the OAuth window after a short delay
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
if (onComplete) {
|
|
176
|
+
console.log('Calling onComplete to close OAuth window');
|
|
177
|
+
onComplete();
|
|
178
|
+
}
|
|
179
|
+
}, 1000);
|
|
180
|
+
return;
|
|
109
181
|
}
|
|
110
182
|
}
|
|
111
183
|
|
|
@@ -115,6 +187,7 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
115
187
|
|
|
116
188
|
// If we haven't already extracted a code/token, consider this a generic success
|
|
117
189
|
if (!authCode) {
|
|
190
|
+
console.log(`Calling onSuccess for ${platform} with generic success`);
|
|
118
191
|
onSuccess('success');
|
|
119
192
|
}
|
|
120
193
|
|
|
@@ -124,6 +197,19 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
124
197
|
onComplete();
|
|
125
198
|
}
|
|
126
199
|
}
|
|
200
|
+
|
|
201
|
+
// Handle specific redirect patterns that indicate completion
|
|
202
|
+
if (navState.url.includes('api2.onairos.uk') &&
|
|
203
|
+
(navState.url.includes('callback') || navState.url.includes('success'))) {
|
|
204
|
+
console.log(`Backend callback detected for ${platform}`);
|
|
205
|
+
onSuccess('backend_callback_success');
|
|
206
|
+
|
|
207
|
+
setTimeout(() => {
|
|
208
|
+
if (onComplete) {
|
|
209
|
+
onComplete();
|
|
210
|
+
}
|
|
211
|
+
}, 1500);
|
|
212
|
+
}
|
|
127
213
|
};
|
|
128
214
|
|
|
129
215
|
const handleLoadEnd = () => {
|
|
@@ -134,16 +220,44 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
134
220
|
const handleError = (syntheticEvent: any) => {
|
|
135
221
|
const { nativeEvent } = syntheticEvent;
|
|
136
222
|
console.error('WebView error:', nativeEvent);
|
|
137
|
-
|
|
138
|
-
|
|
223
|
+
|
|
224
|
+
if (retryCount < 2) {
|
|
225
|
+
console.log(`Retrying OAuth load (attempt ${retryCount + 1})`);
|
|
226
|
+
setRetryCount(prev => prev + 1);
|
|
227
|
+
setIsLoading(true);
|
|
228
|
+
setError(null);
|
|
229
|
+
|
|
230
|
+
// Retry after a short delay
|
|
231
|
+
setTimeout(() => {
|
|
232
|
+
if (webViewRef.current) {
|
|
233
|
+
webViewRef.current.reload();
|
|
234
|
+
}
|
|
235
|
+
}, 2000);
|
|
236
|
+
} else {
|
|
237
|
+
setError('Failed to load OAuth page. Please try again or use the browser option.');
|
|
238
|
+
setIsLoading(false);
|
|
239
|
+
}
|
|
139
240
|
};
|
|
140
241
|
|
|
141
242
|
const handleOpenInBrowser = () => {
|
|
243
|
+
console.log('Opening OAuth URL in external browser:', url);
|
|
142
244
|
Linking.openURL(url).catch(err => {
|
|
143
245
|
console.error('Failed to open URL in browser:', err);
|
|
246
|
+
setError('Unable to open browser. Please check your device settings.');
|
|
144
247
|
});
|
|
145
248
|
};
|
|
146
249
|
|
|
250
|
+
const handleRetry = () => {
|
|
251
|
+
console.log('Manual retry requested');
|
|
252
|
+
setError(null);
|
|
253
|
+
setIsLoading(true);
|
|
254
|
+
setRetryCount(0);
|
|
255
|
+
|
|
256
|
+
if (webViewRef.current) {
|
|
257
|
+
webViewRef.current.reload();
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
|
|
147
261
|
/**
|
|
148
262
|
* Get platform-specific icon
|
|
149
263
|
*/
|
|
@@ -205,9 +319,14 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
205
319
|
<Icon name="error-outline" size={48} color="#FF6B6B" />
|
|
206
320
|
<Text style={styles.errorTitle}>Connection Error</Text>
|
|
207
321
|
<Text style={styles.errorMessage}>{error}</Text>
|
|
208
|
-
<
|
|
209
|
-
<
|
|
210
|
-
|
|
322
|
+
<View style={styles.buttonContainer}>
|
|
323
|
+
<TouchableOpacity style={styles.retryButton} onPress={handleRetry}>
|
|
324
|
+
<Text style={styles.retryButtonText}>Retry</Text>
|
|
325
|
+
</TouchableOpacity>
|
|
326
|
+
<TouchableOpacity style={styles.browserButton} onPress={handleOpenInBrowser}>
|
|
327
|
+
<Text style={styles.browserButtonText}>Open in Browser</Text>
|
|
328
|
+
</TouchableOpacity>
|
|
329
|
+
</View>
|
|
211
330
|
</View>
|
|
212
331
|
</SafeAreaView>
|
|
213
332
|
);
|
|
@@ -254,11 +373,33 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
254
373
|
mixedContentMode="compatibility"
|
|
255
374
|
thirdPartyCookiesEnabled={true}
|
|
256
375
|
sharedCookiesEnabled={true}
|
|
257
|
-
|
|
376
|
+
cacheEnabled={true}
|
|
377
|
+
allowsBackForwardNavigationGestures={true}
|
|
378
|
+
allowsLinkPreview={false}
|
|
379
|
+
userAgent="Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1"
|
|
258
380
|
onShouldStartLoadWithRequest={(request) => {
|
|
259
|
-
|
|
381
|
+
console.log('WebView attempting to load:', request.url);
|
|
382
|
+
|
|
383
|
+
// Block about:srcdoc and other problematic URLs
|
|
384
|
+
if (request.url.startsWith('about:') ||
|
|
385
|
+
request.url.startsWith('data:') ||
|
|
386
|
+
request.url === 'about:blank') {
|
|
387
|
+
console.log('Blocking problematic URL:', request.url);
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// Allow all other requests
|
|
260
392
|
return true;
|
|
261
393
|
}}
|
|
394
|
+
onLoadStart={(syntheticEvent) => {
|
|
395
|
+
const { nativeEvent } = syntheticEvent;
|
|
396
|
+
console.log('WebView load started:', nativeEvent.url);
|
|
397
|
+
setIsLoading(true);
|
|
398
|
+
}}
|
|
399
|
+
onLoadProgress={(syntheticEvent) => {
|
|
400
|
+
const { nativeEvent } = syntheticEvent;
|
|
401
|
+
console.log('WebView load progress:', nativeEvent.progress);
|
|
402
|
+
}}
|
|
262
403
|
renderError={(errorName) => (
|
|
263
404
|
<View style={styles.errorContainer}>
|
|
264
405
|
<Icon name="error-outline" size={48} color="#FF6B6B" />
|
|
@@ -266,8 +407,8 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
266
407
|
<Text style={styles.errorMessage}>
|
|
267
408
|
Failed to load the authentication page. Error: {errorName}
|
|
268
409
|
</Text>
|
|
269
|
-
<TouchableOpacity style={styles.retryButton} onPress={
|
|
270
|
-
<Text style={styles.retryButtonText}>
|
|
410
|
+
<TouchableOpacity style={styles.retryButton} onPress={handleRetry}>
|
|
411
|
+
<Text style={styles.retryButtonText}>Retry</Text>
|
|
271
412
|
</TouchableOpacity>
|
|
272
413
|
</View>
|
|
273
414
|
)}
|
|
@@ -277,6 +418,29 @@ export const OAuthWebView: React.FC<OAuthWebViewProps> = ({
|
|
|
277
418
|
<Text style={styles.loadingText}>Loading {platform}...</Text>
|
|
278
419
|
</View>
|
|
279
420
|
)}
|
|
421
|
+
injectedJavaScript={`
|
|
422
|
+
// Prevent white screen issues
|
|
423
|
+
window.addEventListener('error', function(e) {
|
|
424
|
+
console.log('JavaScript error:', e.message);
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
// Handle OAuth redirects
|
|
428
|
+
window.addEventListener('beforeunload', function(e) {
|
|
429
|
+
console.log('Page unloading:', window.location.href);
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
// Monitor for OAuth completion
|
|
433
|
+
setInterval(function() {
|
|
434
|
+
if (window.location.href.includes('code=') ||
|
|
435
|
+
window.location.href.includes('access_token=') ||
|
|
436
|
+
window.location.href.includes('oauth_token=') ||
|
|
437
|
+
window.location.href.includes('api2.onairos.uk')) {
|
|
438
|
+
console.log('OAuth completion detected:', window.location.href);
|
|
439
|
+
}
|
|
440
|
+
}, 1000);
|
|
441
|
+
|
|
442
|
+
true; // Required for injected JavaScript
|
|
443
|
+
`}
|
|
280
444
|
/>
|
|
281
445
|
</SafeAreaView>
|
|
282
446
|
);
|
|
@@ -315,10 +479,12 @@ const styles = StyleSheet.create({
|
|
|
315
479
|
zIndex: 10,
|
|
316
480
|
},
|
|
317
481
|
browserButton: {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
482
|
+
backgroundColor: 'transparent',
|
|
483
|
+
borderWidth: 1,
|
|
484
|
+
borderColor: '#666',
|
|
485
|
+
paddingHorizontal: 24,
|
|
486
|
+
paddingVertical: 12,
|
|
487
|
+
borderRadius: 8,
|
|
322
488
|
},
|
|
323
489
|
webView: {
|
|
324
490
|
flex: 1,
|
|
@@ -358,10 +524,22 @@ const styles = StyleSheet.create({
|
|
|
358
524
|
paddingHorizontal: 24,
|
|
359
525
|
paddingVertical: 12,
|
|
360
526
|
borderRadius: 8,
|
|
527
|
+
marginRight: 10,
|
|
361
528
|
},
|
|
362
529
|
retryButtonText: {
|
|
363
530
|
color: '#fff',
|
|
364
531
|
fontSize: 16,
|
|
365
532
|
fontWeight: '600',
|
|
366
533
|
},
|
|
534
|
+
buttonContainer: {
|
|
535
|
+
flexDirection: 'row',
|
|
536
|
+
justifyContent: 'center',
|
|
537
|
+
alignItems: 'center',
|
|
538
|
+
marginTop: 10,
|
|
539
|
+
},
|
|
540
|
+
browserButtonText: {
|
|
541
|
+
color: '#666',
|
|
542
|
+
fontSize: 16,
|
|
543
|
+
fontWeight: '600',
|
|
544
|
+
},
|
|
367
545
|
});
|