@onairos/react-native 3.0.68 → 3.0.70

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.
@@ -148,52 +148,95 @@ export const OAuthWebView = ({
148
148
 
149
149
  // Check for specific NSURLErrorDomain codes
150
150
  let errorMessage = 'Failed to load OAuth page.';
151
+ let isRetryable = true;
151
152
  if (nativeEvent.domain === 'NSURLErrorDomain') {
152
153
  switch (nativeEvent.code) {
153
154
  case -1009:
154
155
  // NSURLErrorNotConnectedToInternet
155
156
  errorMessage = 'No internet connection. Please check your network and try again.';
157
+ isRetryable = true;
156
158
  break;
157
159
  case -1003:
158
160
  // NSURLErrorCannotFindHost
159
161
  errorMessage = 'Cannot reach authentication server. Please check your internet connection.';
162
+ isRetryable = true;
160
163
  break;
161
164
  case -1001:
162
165
  // NSURLErrorTimedOut
163
166
  errorMessage = 'Connection timed out. Please try again.';
167
+ isRetryable = true;
164
168
  break;
165
169
  case -1200:
166
170
  // NSURLErrorSecureConnectionFailed
167
171
  errorMessage = 'Secure connection failed. Please try again.';
172
+ isRetryable = true;
168
173
  break;
169
174
  case -1022:
170
175
  // NSURLErrorAppTransportSecurityRequiresSecureConnection
171
176
  errorMessage = 'App Transport Security error. Connection must be secure.';
177
+ isRetryable = false;
172
178
  break;
173
179
  case -1004:
174
180
  // NSURLErrorCannotConnectToHost
175
181
  errorMessage = 'Cannot connect to authentication server. Please try again later.';
182
+ isRetryable = true;
183
+ break;
184
+ case -1005:
185
+ // NSURLErrorNetworkConnectionLost
186
+ errorMessage = 'Network connection lost. Please check your connection and try again.';
187
+ isRetryable = true;
188
+ break;
189
+ case -1020:
190
+ // NSURLErrorDataNotAllowed
191
+ errorMessage = 'Data not allowed. Please check your cellular data settings.';
192
+ isRetryable = true;
176
193
  break;
177
194
  default:
178
195
  errorMessage = `Network error (${nativeEvent.code}): ${nativeEvent.description || 'Please check your connection and try again.'}`;
196
+ isRetryable = true;
197
+ }
198
+ } else if (nativeEvent.domain === 'WebKitErrorDomain') {
199
+ switch (nativeEvent.code) {
200
+ case 102:
201
+ // WebKitErrorFrameLoadInterruptedByPolicyChange
202
+ errorMessage = 'Page load was interrupted. Please try again.';
203
+ isRetryable = true;
204
+ break;
205
+ case 204:
206
+ // WebKitErrorPlugInLoadFailed
207
+ errorMessage = 'Plugin failed to load. Please try again.';
208
+ isRetryable = true;
209
+ break;
210
+ default:
211
+ errorMessage = `WebKit error (${nativeEvent.code}): ${nativeEvent.description || 'Please try again.'}`;
212
+ isRetryable = true;
179
213
  }
180
214
  }
181
215
  console.error('🔴 OAuth WebView Error:', errorMessage);
182
- if (retryCount < 2) {
183
- console.log(`🔄 Retrying OAuth load (attempt ${retryCount + 1}/2)`);
216
+
217
+ // Implement smart retry logic
218
+ if (isRetryable && retryCount < 3) {
219
+ console.log(`🔄 Auto-retrying OAuth load (attempt ${retryCount + 1}/3) in 3 seconds...`);
184
220
  setRetryCount(prev => prev + 1);
185
221
  setIsLoading(true);
186
222
  setError(null);
187
223
 
188
- // Retry after a short delay
224
+ // Retry after a delay with exponential backoff
225
+ const retryDelay = 3000 * Math.pow(2, retryCount); // 3s, 6s, 12s
189
226
  setTimeout(() => {
190
227
  if (webViewRef.current) {
228
+ console.log(`🔄 Attempting retry ${retryCount + 1}...`);
191
229
  webViewRef.current.reload();
192
230
  }
193
- }, 3000);
231
+ }, retryDelay);
194
232
  } else {
195
233
  setError(errorMessage);
196
234
  setIsLoading(false);
235
+
236
+ // Show additional help for persistent errors
237
+ if (retryCount >= 3) {
238
+ console.log('❌ Maximum retries reached, showing error to user');
239
+ }
197
240
  }
198
241
  };
199
242
  const handleOpenInBrowser = () => {
@@ -282,19 +325,81 @@ export const OAuthWebView = ({
282
325
  style: styles.errorTitle
283
326
  }, "Connection Error"), /*#__PURE__*/React.createElement(Text, {
284
327
  style: styles.errorMessage
285
- }, error), /*#__PURE__*/React.createElement(View, {
328
+ }, error), error.includes('internet') || error.includes('network') ? /*#__PURE__*/React.createElement(View, {
329
+ style: styles.helpContainer
330
+ }, /*#__PURE__*/React.createElement(Text, {
331
+ style: styles.helpTitle
332
+ }, "\uD83D\uDCA1 Troubleshooting Steps:"), /*#__PURE__*/React.createElement(Text, {
333
+ style: styles.helpText
334
+ }, "\u2022 Check your Wi-Fi or cellular connection"), /*#__PURE__*/React.createElement(Text, {
335
+ style: styles.helpText
336
+ }, "\u2022 Try switching between Wi-Fi and cellular"), /*#__PURE__*/React.createElement(Text, {
337
+ style: styles.helpText
338
+ }, "\u2022 Ensure you're not using a VPN that blocks OAuth"), /*#__PURE__*/React.createElement(Text, {
339
+ style: styles.helpText
340
+ }, "\u2022 Close other apps that might be using bandwidth")) : error.includes('timeout') ? /*#__PURE__*/React.createElement(View, {
341
+ style: styles.helpContainer
342
+ }, /*#__PURE__*/React.createElement(Text, {
343
+ style: styles.helpTitle
344
+ }, "\u23F1\uFE0F Connection Timeout:"), /*#__PURE__*/React.createElement(Text, {
345
+ style: styles.helpText
346
+ }, "\u2022 Your connection might be slow"), /*#__PURE__*/React.createElement(Text, {
347
+ style: styles.helpText
348
+ }, "\u2022 Try again when you have a stronger signal"), /*#__PURE__*/React.createElement(Text, {
349
+ style: styles.helpText
350
+ }, "\u2022 Use \"Open in Browser\" for better reliability")) : error.includes('secure') || error.includes('SSL') ? /*#__PURE__*/React.createElement(View, {
351
+ style: styles.helpContainer
352
+ }, /*#__PURE__*/React.createElement(Text, {
353
+ style: styles.helpTitle
354
+ }, "\uD83D\uDD12 Security Error:"), /*#__PURE__*/React.createElement(Text, {
355
+ style: styles.helpText
356
+ }, "\u2022 Check your device's date and time settings"), /*#__PURE__*/React.createElement(Text, {
357
+ style: styles.helpText
358
+ }, "\u2022 Update your device's operating system"), /*#__PURE__*/React.createElement(Text, {
359
+ style: styles.helpText
360
+ }, "\u2022 Try \"Open in Browser\" as an alternative")) : /*#__PURE__*/React.createElement(View, {
361
+ style: styles.helpContainer
362
+ }, /*#__PURE__*/React.createElement(Text, {
363
+ style: styles.helpTitle
364
+ }, "\uD83D\uDD27 General Solutions:"), /*#__PURE__*/React.createElement(Text, {
365
+ style: styles.helpText
366
+ }, "\u2022 Close and reopen the app"), /*#__PURE__*/React.createElement(Text, {
367
+ style: styles.helpText
368
+ }, "\u2022 Check your internet connection"), /*#__PURE__*/React.createElement(Text, {
369
+ style: styles.helpText
370
+ }, "\u2022 Use \"Open in Browser\" for better reliability")), /*#__PURE__*/React.createElement(View, {
286
371
  style: styles.buttonContainer
287
372
  }, /*#__PURE__*/React.createElement(TouchableOpacity, {
288
373
  style: styles.retryButton,
289
374
  onPress: handleRetry
290
- }, /*#__PURE__*/React.createElement(Text, {
375
+ }, /*#__PURE__*/React.createElement(Icon, {
376
+ name: "refresh",
377
+ size: 20,
378
+ color: "#fff",
379
+ style: styles.buttonIcon
380
+ }), /*#__PURE__*/React.createElement(Text, {
291
381
  style: styles.retryButtonText
292
382
  }, "Retry")), /*#__PURE__*/React.createElement(TouchableOpacity, {
293
383
  style: styles.browserButton,
294
384
  onPress: handleOpenInBrowser
295
- }, /*#__PURE__*/React.createElement(Text, {
385
+ }, /*#__PURE__*/React.createElement(Icon, {
386
+ name: "open-in-browser",
387
+ size: 20,
388
+ color: "#666",
389
+ style: styles.buttonIcon
390
+ }), /*#__PURE__*/React.createElement(Text, {
296
391
  style: styles.browserButtonText
297
- }, "Open in Browser")))));
392
+ }, "Open in Browser"))), retryCount >= 3 && /*#__PURE__*/React.createElement(View, {
393
+ style: styles.persistentErrorContainer
394
+ }, /*#__PURE__*/React.createElement(Text, {
395
+ style: styles.persistentErrorText
396
+ }, "Still having trouble? Try these steps:"), /*#__PURE__*/React.createElement(Text, {
397
+ style: styles.persistentErrorStep
398
+ }, "1. Use \"Open in Browser\" for more reliable authentication"), /*#__PURE__*/React.createElement(Text, {
399
+ style: styles.persistentErrorStep
400
+ }, "2. Check if other apps can access the internet"), /*#__PURE__*/React.createElement(Text, {
401
+ style: styles.persistentErrorStep
402
+ }, "3. Restart your device if the problem persists"))));
298
403
  }
299
404
  return /*#__PURE__*/React.createElement(SafeAreaView, {
300
405
  style: styles.container
@@ -464,7 +569,10 @@ const styles = StyleSheet.create({
464
569
  borderColor: '#666',
465
570
  paddingHorizontal: 24,
466
571
  paddingVertical: 12,
467
- borderRadius: 8
572
+ borderRadius: 8,
573
+ flexDirection: 'row',
574
+ alignItems: 'center',
575
+ justifyContent: 'center'
468
576
  },
469
577
  webView: {
470
578
  flex: 1
@@ -504,7 +612,10 @@ const styles = StyleSheet.create({
504
612
  paddingHorizontal: 24,
505
613
  paddingVertical: 12,
506
614
  borderRadius: 8,
507
- marginRight: 10
615
+ marginRight: 10,
616
+ flexDirection: 'row',
617
+ alignItems: 'center',
618
+ justifyContent: 'center'
508
619
  },
509
620
  retryButtonText: {
510
621
  color: '#fff',
@@ -521,6 +632,41 @@ const styles = StyleSheet.create({
521
632
  color: '#666',
522
633
  fontSize: 16,
523
634
  fontWeight: '600'
635
+ },
636
+ helpContainer: {
637
+ marginBottom: 20
638
+ },
639
+ helpTitle: {
640
+ fontSize: 18,
641
+ fontWeight: '600',
642
+ color: '#333',
643
+ marginBottom: 8
644
+ },
645
+ helpText: {
646
+ fontSize: 14,
647
+ color: '#666',
648
+ textAlign: 'center'
649
+ },
650
+ buttonIcon: {
651
+ marginRight: 10
652
+ },
653
+ persistentErrorContainer: {
654
+ marginTop: 20,
655
+ padding: 20,
656
+ backgroundColor: '#f8f8f8',
657
+ borderRadius: 8
658
+ },
659
+ persistentErrorText: {
660
+ fontSize: 16,
661
+ fontWeight: '600',
662
+ color: '#333',
663
+ marginBottom: 10
664
+ },
665
+ persistentErrorStep: {
666
+ fontSize: 14,
667
+ color: '#666',
668
+ textAlign: 'center',
669
+ marginBottom: 5
524
670
  }
525
671
  });
526
672
  //# 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","_url$split$","_url$split$2","isLoading","setIsLoading","error","setError","retryCount","setRetryCount","webViewRef","timeoutRef","console","log","protocol","split","domain","path","slice","join","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalOAuthRedirect","handleLoadEnd","handleError","syntheticEvent","nativeEvent","description","code","canGoBack","canGoForward","loading","target","title","errorMessage","prev","reload","handleOpenInBrowser","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","errorContainer","errorTitle","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","startsWith","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":"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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","_url$split$","_url$split$2","isLoading","setIsLoading","error","setError","retryCount","setRetryCount","webViewRef","timeoutRef","console","log","protocol","split","domain","path","slice","join","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalOAuthRedirect","handleLoadEnd","handleError","syntheticEvent","nativeEvent","description","code","canGoBack","canGoForward","loading","target","title","errorMessage","isRetryable","prev","retryDelay","Math","pow","reload","handleOpenInBrowser","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","errorContainer","errorTitle","helpContainer","helpTitle","helpText","buttonContainer","retryButton","buttonIcon","retryButtonText","browserButton","browserButtonText","persistentErrorContainer","persistentErrorText","persistentErrorStep","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","cacheEnabled","allowsBackForwardNavigationGestures","allowsLinkPreview","userAgent","onShouldStartLoadWithRequest","request","startsWith","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":"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","ignoreList":[]}
@@ -90,6 +90,15 @@ export const initiateOAuth = async (platform, username, appName) => {
90
90
  console.log('🌐 Platform uses OAuth WebView flow');
91
91
  console.log('🔗 Auth endpoint:', PLATFORM_AUTH_CONFIG[platform].authEndpoint);
92
92
 
93
+ // Pre-flight connectivity check
94
+ console.log('🔍 Performing pre-flight connectivity check...');
95
+ const connectivityResult = await testApiConnectivity();
96
+ if (!connectivityResult.success) {
97
+ console.error('❌ Pre-flight connectivity check failed:', connectivityResult.error);
98
+ throw new Error(`Cannot reach authentication server: ${connectivityResult.error}`);
99
+ }
100
+ console.log('✅ Pre-flight connectivity check passed');
101
+
93
102
  // Handle Instagram with specific API format
94
103
  if (platform === 'instagram') {
95
104
  const state = 'djksbfds';
@@ -100,13 +109,28 @@ export const initiateOAuth = async (platform, username, appName) => {
100
109
  }
101
110
  };
102
111
  console.log('📤 Sending Instagram OAuth request:', jsonData);
103
- const response = await fetch('https://api2.onairos.uk/instagram/authorize', {
104
- method: 'POST',
105
- headers: {
106
- 'Content-Type': 'application/json'
107
- },
108
- body: JSON.stringify(jsonData)
109
- });
112
+ const controller = new AbortController();
113
+ const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 second timeout
114
+
115
+ let response;
116
+ try {
117
+ response = await fetch('https://api2.onairos.uk/instagram/authorize', {
118
+ method: 'POST',
119
+ headers: {
120
+ 'Content-Type': 'application/json',
121
+ 'User-Agent': 'OnairosReactNative/1.0'
122
+ },
123
+ body: JSON.stringify(jsonData),
124
+ signal: controller.signal
125
+ });
126
+ } catch (fetchError) {
127
+ clearTimeout(timeoutId);
128
+ if (fetchError.name === 'AbortError') {
129
+ throw new Error(`Request timeout: Instagram OAuth server took too long to respond`);
130
+ }
131
+ throw new Error(`Network error: ${fetchError.message || 'Failed to connect to Instagram OAuth server'}`);
132
+ }
133
+ clearTimeout(timeoutId);
110
134
  console.log('📡 Instagram OAuth response status:', response.status);
111
135
  console.log('📡 Instagram OAuth response headers:', response.headers);
112
136
  if (!response.ok) {
@@ -118,7 +142,13 @@ export const initiateOAuth = async (platform, username, appName) => {
118
142
  console.log('📥 Instagram OAuth response data:', responseData);
119
143
  if (responseData.instagramURL) {
120
144
  console.log('✅ Instagram OAuth URL received:', responseData.instagramURL);
121
- return responseData.instagramURL;
145
+
146
+ // Validate the URL before returning
147
+ if (await validateOAuthUrl(responseData.instagramURL)) {
148
+ return responseData.instagramURL;
149
+ } else {
150
+ throw new Error('Received invalid Instagram OAuth URL');
151
+ }
122
152
  }
123
153
  console.error('❌ No Instagram URL found in response');
124
154
  throw new Error('No Instagram URL found in response');
@@ -135,14 +165,29 @@ export const initiateOAuth = async (platform, username, appName) => {
135
165
  };
136
166
  console.log(`📤 Sending ${platform} OAuth request:`, jsonData);
137
167
 
138
- // Make the request to get the OAuth URL
139
- const response = await fetch(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
140
- method: 'POST',
141
- headers: {
142
- 'Content-Type': 'application/json'
143
- },
144
- body: JSON.stringify(jsonData)
145
- });
168
+ // Make the request to get the OAuth URL with enhanced error handling
169
+ const controller = new AbortController();
170
+ const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 second timeout
171
+
172
+ let response;
173
+ try {
174
+ response = await fetch(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
175
+ method: 'POST',
176
+ headers: {
177
+ 'Content-Type': 'application/json',
178
+ 'User-Agent': 'OnairosReactNative/1.0'
179
+ },
180
+ body: JSON.stringify(jsonData),
181
+ signal: controller.signal
182
+ });
183
+ } catch (fetchError) {
184
+ clearTimeout(timeoutId);
185
+ if (fetchError.name === 'AbortError') {
186
+ throw new Error(`Request timeout: ${platform} OAuth server took too long to respond`);
187
+ }
188
+ throw new Error(`Network error: ${fetchError.message || 'Failed to connect to OAuth server'}`);
189
+ }
190
+ clearTimeout(timeoutId);
146
191
  console.log(`📡 ${platform} OAuth response status:`, response.status);
147
192
  console.log(`📡 ${platform} OAuth response headers:`, response.headers);
148
193
  if (!response.ok) {
@@ -162,35 +207,102 @@ export const initiateOAuth = async (platform, username, appName) => {
162
207
  }
163
208
 
164
209
  // Check if the response contains the OAuth URL based on platform
210
+ let oauthUrl = null;
165
211
  switch (platform) {
166
212
  case 'reddit':
167
- if (data.redditURL) return data.redditURL;
213
+ oauthUrl = data.redditURL;
168
214
  break;
169
215
  case 'pinterest':
170
- if (data.pinterestURL) return data.pinterestURL;
216
+ oauthUrl = data.pinterestURL;
171
217
  break;
172
218
  case 'youtube':
173
- if (data.youtubeURL) return data.youtubeURL;
219
+ oauthUrl = data.youtubeURL;
174
220
  break;
175
221
  case 'email':
176
222
  // Gmail might return under different field names
177
- if (data.emailURL) return data.emailURL;
178
- if (data.gmailURL) return data.gmailURL;
179
- if (data.authUrl) return data.authUrl;
180
- if (data.url) return data.url;
223
+ oauthUrl = data.emailURL || data.gmailURL || data.authUrl || data.url;
181
224
  break;
182
225
  default:
183
- if (data.url) return data.url;
226
+ oauthUrl = data.url;
184
227
  break;
185
228
  }
186
- console.error(`❌ No OAuth URL found in response for ${platform}. Response:`, data);
187
- throw new Error(`No OAuth URL found in response for ${platform}`);
229
+ if (!oauthUrl) {
230
+ console.error(`❌ No OAuth URL found in response for ${platform}. Response:`, data);
231
+ throw new Error(`No OAuth URL found in response for ${platform}`);
232
+ }
233
+ console.log(`✅ ${platform} OAuth URL received:`, oauthUrl);
234
+
235
+ // Validate the URL before returning
236
+ if (await validateOAuthUrl(oauthUrl)) {
237
+ return oauthUrl;
238
+ } else {
239
+ throw new Error(`Received invalid ${platform} OAuth URL`);
240
+ }
188
241
  } catch (error) {
189
242
  console.error(`Error initiating OAuth for ${platform}:`, error);
190
243
  throw error;
191
244
  }
192
245
  };
193
246
 
247
+ /**
248
+ * Validates an OAuth URL to ensure it's reachable
249
+ * @param url The OAuth URL to validate
250
+ * @returns Promise<boolean> indicating if the URL is valid and reachable
251
+ */
252
+ const validateOAuthUrl = async url => {
253
+ try {
254
+ console.log('🔍 Validating OAuth URL:', url);
255
+
256
+ // Basic URL format validation
257
+ if (!url || typeof url !== 'string') {
258
+ console.error('❌ Invalid URL format:', url);
259
+ return false;
260
+ }
261
+
262
+ // Check if URL starts with https
263
+ if (!url.startsWith('https://')) {
264
+ console.error('❌ URL must use HTTPS:', url);
265
+ return false;
266
+ }
267
+
268
+ // Try to parse the URL
269
+ try {
270
+ new URL(url);
271
+ } catch (parseError) {
272
+ console.error('❌ URL parsing failed:', parseError);
273
+ return false;
274
+ }
275
+
276
+ // Make a HEAD request to check if the URL is reachable
277
+ const controller = new AbortController();
278
+ const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
279
+
280
+ try {
281
+ const response = await fetch(url, {
282
+ method: 'HEAD',
283
+ signal: controller.signal
284
+ });
285
+ clearTimeout(timeoutId);
286
+
287
+ // Accept any response that's not a network error
288
+ // OAuth pages might return various status codes
289
+ console.log('✅ OAuth URL validation successful, status:', response.status);
290
+ return true;
291
+ } catch (fetchError) {
292
+ clearTimeout(timeoutId);
293
+ if (fetchError.name === 'AbortError') {
294
+ console.warn('⚠️ OAuth URL validation timeout, but proceeding anyway');
295
+ return true; // Allow timeout as URLs might be slow to respond
296
+ }
297
+ console.warn('⚠️ OAuth URL validation failed, but proceeding anyway:', fetchError.message);
298
+ return true; // Allow network errors as they might be temporary
299
+ }
300
+ } catch (error) {
301
+ console.warn('⚠️ OAuth URL validation error, but proceeding anyway:', error);
302
+ return true; // Allow validation errors to not block the flow
303
+ }
304
+ };
305
+
194
306
  /**
195
307
  * Initiates the native SDK authentication flow for a platform
196
308
  * @param platform The platform to authenticate with
@@ -450,25 +562,58 @@ export const isOAuthCallback = url => {
450
562
  export const testApiConnectivity = async () => {
451
563
  try {
452
564
  console.log('🔍 Testing connectivity to Onairos API...');
453
- const response = await fetch('https://api2.onairos.uk/health', {
454
- method: 'GET',
455
- headers: {
456
- 'Content-Type': 'application/json'
565
+
566
+ // Test multiple endpoints for better reliability
567
+ const testEndpoints = ['https://api2.onairos.uk/health', 'https://api2.onairos.uk' // Base URL
568
+ ];
569
+ let lastError = null;
570
+ for (const endpoint of testEndpoints) {
571
+ try {
572
+ console.log(`🔍 Testing endpoint: ${endpoint}`);
573
+ const controller = new AbortController();
574
+ const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
575
+
576
+ const response = await fetch(endpoint, {
577
+ method: 'GET',
578
+ headers: {
579
+ 'Content-Type': 'application/json',
580
+ 'User-Agent': 'OnairosReactNative/1.0'
581
+ },
582
+ signal: controller.signal
583
+ });
584
+ clearTimeout(timeoutId);
585
+ console.log(`🌐 API connectivity test response for ${endpoint}:`, response.status);
586
+ if (response.ok || response.status === 404) {
587
+ // Accept 404 as it means the server is reachable
588
+ console.log('✅ API server is reachable');
589
+ return {
590
+ success: true
591
+ };
592
+ } else {
593
+ console.log(`⚠️ API server responded with status ${response.status} for ${endpoint}`);
594
+ lastError = `API server error: ${response.status}`;
595
+ // Continue to next endpoint
596
+ }
597
+ } catch (fetchError) {
598
+ console.log(`❌ Failed to reach ${endpoint}:`, fetchError);
599
+ if (fetchError.name === 'AbortError') {
600
+ lastError = 'Connection timeout - API server took too long to respond';
601
+ } else if (fetchError.message.includes('Network request failed')) {
602
+ lastError = 'Network error - check your internet connection';
603
+ } else if (fetchError.message.includes('not connected to the internet')) {
604
+ lastError = 'No internet connection';
605
+ } else {
606
+ lastError = `Network error: ${fetchError.message}`;
607
+ }
608
+
609
+ // Continue to next endpoint
457
610
  }
458
- });
459
- console.log('🌐 API connectivity test response:', response.status);
460
- if (response.ok) {
461
- console.log('✅ API server is reachable');
462
- return {
463
- success: true
464
- };
465
- } else {
466
- console.log('⚠️ API server responded with error:', response.status);
467
- return {
468
- success: false,
469
- error: `API server error: ${response.status}`
470
- };
471
611
  }
612
+ console.error('❌ All API connectivity tests failed');
613
+ return {
614
+ success: false,
615
+ error: lastError || 'Cannot reach API server'
616
+ };
472
617
  } catch (error) {
473
618
  console.error('❌ API connectivity test failed:', error);
474
619
  return {