@onairos/react-native 3.0.49 → 3.0.50

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.
@@ -3,11 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.testApiConnectivity = exports.isOAuthCallback = exports.initiateOAuth = exports.initiateNativeAuth = exports.hasNativeSDK = exports.handleOAuthCallback = exports.getPlatformColor = exports.getAuthEndpoint = void 0;
6
+ exports.updateGoogleClientIds = exports.testApiConnectivity = exports.refreshYouTubeTokens = exports.refreshGoogleTokens = exports.isOAuthCallback = exports.initiateOAuth = exports.initiateNativeAuth = exports.hasNativeSDK = exports.handleOAuthCallbackUrl = exports.handleOAuthCallback = exports.getPlatformColor = exports.getAuthEndpoint = void 0;
7
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
9
  // Define types for platform auth configuration
8
10
 
9
11
  // Configuration for each platform's authentication
10
- const PLATFORM_AUTH_CONFIG = {
12
+ let PLATFORM_AUTH_CONFIG = {
11
13
  instagram: {
12
14
  hasNativeSDK: false,
13
15
  // Instagram uses OAuth WebView flow
@@ -15,11 +17,15 @@ const PLATFORM_AUTH_CONFIG = {
15
17
  color: '#E1306C'
16
18
  },
17
19
  youtube: {
18
- hasNativeSDK: false,
20
+ hasNativeSDK: true,
19
21
  // Native Google Sign-In SDK enabled
20
22
  nativeSDKPackage: '@react-native-google-signin/google-signin',
21
23
  authEndpoint: 'https://api2.onairos.uk/youtube/authorize',
22
- color: '#FF0000'
24
+ color: '#FF0000',
25
+ clientId: '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com',
26
+ redirectUri: 'onairosevents://auth/callback',
27
+ scope: 'https://www.googleapis.com/auth/youtube.readonly',
28
+ responseType: 'code'
23
29
  },
24
30
  reddit: {
25
31
  hasNativeSDK: false,
@@ -189,67 +195,192 @@ const initiateOAuth = async (platform, username, appName) => {
189
195
  * @returns A Promise that resolves to the authentication result
190
196
  */
191
197
  exports.initiateOAuth = initiateOAuth;
192
- const initiateNativeAuth = async platform => {
193
- try {
194
- // Currently only YouTube (Google Sign-In) is supported
195
- if (platform === 'youtube') {
196
- console.log('Initiating native Google Sign-In for YouTube');
198
+ const initiateNativeAuth = async (platform, username) => {
199
+ if (platform === 'youtube') {
200
+ console.log('🔗 Initiating native Google Sign-In for YouTube');
201
+ try {
202
+ var _userInfo$user, _currentUser$user, _userInfo$user4, _userInfo$user6, _userInfo$user7, _userInfo$user8;
203
+ // Import Google Sign-In dynamically to avoid errors if not installed
204
+ const {
205
+ GoogleSignin,
206
+ statusCodes
207
+ } = require('@react-native-google-signin/google-signin');
208
+
209
+ // Configure Google Sign-In
210
+ await GoogleSignin.configure({
211
+ webClientId: '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com',
212
+ // Replace with your web client ID
213
+ iosClientId: '1030678346906-lovkuds2ouqmoc8eu5qpo98spa6edv4o.apps.googleusercontent.com',
214
+ // Replace with your iOS client ID
215
+ scopes: ['https://www.googleapis.com/auth/youtube.readonly'],
216
+ offlineAccess: true,
217
+ // CRITICAL: This ensures we get refresh tokens
218
+ hostedDomain: '',
219
+ forceCodeForRefreshToken: true,
220
+ // CRITICAL: Force refresh token on first sign-in
221
+ accountName: '' // Clear to avoid conflicts
222
+ });
223
+
224
+ // Check if Google Play Services are available
225
+ await GoogleSignin.hasPlayServices();
226
+
227
+ // Sign in with Google
228
+ const userInfo = await GoogleSignin.signIn();
229
+ console.log('✅ Google Sign-In successful:', (_userInfo$user = userInfo.user) === null || _userInfo$user === void 0 ? void 0 : _userInfo$user.email);
230
+
231
+ // Get access token for API calls
232
+ const tokens = await GoogleSignin.getTokens();
233
+ console.log('🔑 Got Google tokens');
234
+
235
+ // Get current user info with refresh token
236
+ const currentUser = await GoogleSignin.getCurrentUser();
237
+ console.log('👤 Current user info:', currentUser === null || currentUser === void 0 || (_currentUser$user = currentUser.user) === null || _currentUser$user === void 0 ? void 0 : _currentUser$user.email);
238
+
239
+ // Extract refresh token from server auth code
240
+ let refreshToken = null;
241
+ if (currentUser !== null && currentUser !== void 0 && currentUser.serverAuthCode) {
242
+ console.log('🔄 Server auth code available for refresh token');
243
+ refreshToken = currentUser.serverAuthCode;
244
+ }
245
+ if (!refreshToken) {
246
+ console.warn('⚠️ No refresh token available - token refresh may fail later');
247
+ } else {
248
+ console.log('✅ Refresh token available for YouTube connection');
249
+ }
250
+
251
+ // Fetch YouTube channel information
252
+ let channelName = 'Unknown Channel';
253
+ let channelId = null;
197
254
  try {
198
- // Import Google Sign-In dynamically to avoid errors if not installed
199
- const {
200
- GoogleSignin,
201
- statusCodes
202
- } = require('@react-native-google-signin/google-signin');
203
-
204
- // Configure Google Sign-In
205
- await GoogleSignin.configure({
206
- scopes: ['https://www.googleapis.com/auth/youtube.readonly', 'https://www.googleapis.com/auth/youtube.force-ssl'],
207
- webClientId: 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
208
- // Replace with your Web Client ID from Google Cloud Console
209
- iosClientId: 'YOUR_IOS_CLIENT_ID.apps.googleusercontent.com',
210
- // Replace with your iOS Client ID (iOS only)
211
- offlineAccess: true,
212
- hostedDomain: '',
213
- forceCodeForRefreshToken: true
255
+ console.log('📺 Fetching YouTube channel information...');
256
+ const channelResponse = await fetch('https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true', {
257
+ headers: {
258
+ 'Authorization': `Bearer ${tokens.accessToken}`,
259
+ 'Accept': 'application/json'
260
+ }
214
261
  });
262
+ if (channelResponse.ok) {
263
+ const channelData = await channelResponse.json();
264
+ if (channelData.items && channelData.items.length > 0) {
265
+ channelName = channelData.items[0].snippet.title;
266
+ channelId = channelData.items[0].id;
267
+ console.log('✅ YouTube channel found:', channelName);
268
+ }
269
+ }
270
+ } catch (channelError) {
271
+ var _userInfo$user2, _userInfo$user3;
272
+ console.log('⚠️ Error fetching YouTube channel info:', channelError);
273
+ channelName = ((_userInfo$user2 = userInfo.user) === null || _userInfo$user2 === void 0 ? void 0 : _userInfo$user2.name) || ((_userInfo$user3 = userInfo.user) === null || _userInfo$user3 === void 0 ? void 0 : _userInfo$user3.email) || 'Unknown Channel';
274
+ }
215
275
 
216
- // Check if device supports Google Play Services
217
- await GoogleSignin.hasPlayServices();
276
+ // Get authentication info
277
+ let authToken = (await _asyncStorage.default.getItem('onairos_jwt_token')) || (await _asyncStorage.default.getItem('enoch_token')) || (await _asyncStorage.default.getItem('auth_token'));
278
+ const storedUsername = await _asyncStorage.default.getItem('onairos_username');
279
+ const finalUsername = storedUsername || username || ((_userInfo$user4 = userInfo.user) === null || _userInfo$user4 === void 0 ? void 0 : _userInfo$user4.email) || 'youtube_user';
218
280
 
219
- // Sign in
220
- const userInfo = await GoogleSignin.signIn();
221
- console.log('Google Sign-In successful:', userInfo);
281
+ // Create auth token if needed
282
+ if (!authToken || authToken.trim().length < 20) {
283
+ console.log('🔐 Creating authentication token for YouTube...');
284
+ try {
285
+ var _userInfo$user5;
286
+ const fallbackEmail = ((_userInfo$user5 = userInfo.user) === null || _userInfo$user5 === void 0 ? void 0 : _userInfo$user5.email) || `${finalUsername}@youtube.temp`;
222
287
 
223
- // Get access token
224
- const tokens = await GoogleSignin.getTokens();
225
- console.log('Google tokens:', tokens);
288
+ // Create user accounts and get JWT token
289
+ const onairosSignupResponse = await fetch('https://api2.onairos.uk/register/enoch', {
290
+ method: 'POST',
291
+ headers: {
292
+ 'Content-Type': 'application/json'
293
+ },
294
+ body: JSON.stringify({
295
+ email: fallbackEmail,
296
+ username: finalUsername,
297
+ name: finalUsername
298
+ })
299
+ });
300
+ if (onairosSignupResponse.ok) {
301
+ var _onairosResponseData$;
302
+ const onairosResponseData = await onairosSignupResponse.json();
226
303
 
227
- // Here you would typically send the tokens to your backend
228
- // to associate the YouTube account with the user
304
+ // Extract token from response
305
+ authToken = onairosResponseData.token || ((_onairosResponseData$ = onairosResponseData.data) === null || _onairosResponseData$ === void 0 ? void 0 : _onairosResponseData$.token) || onairosResponseData.jwt;
306
+ if (authToken) {
307
+ // Store tokens
308
+ await _asyncStorage.default.setItem('onairos_jwt_token', authToken);
309
+ await _asyncStorage.default.setItem('enoch_token', authToken);
310
+ await _asyncStorage.default.setItem('auth_token', authToken);
311
+ await _asyncStorage.default.setItem('onairos_username', onairosResponseData.username || finalUsername);
312
+ console.log('✅ Successfully created and stored authentication token');
313
+ }
314
+ }
315
+ } catch (tokenError) {
316
+ console.warn('⚠️ Error creating auth token:', tokenError);
317
+ }
318
+ }
319
+ console.log('🔗 Linking YouTube data to user:', finalUsername);
320
+ console.log('📺 YouTube channel name:', channelName);
229
321
 
322
+ // Send tokens to backend for YouTube data processing
323
+ const backendResponse = await fetch('https://api2.onairos.uk/youtube/native-auth', {
324
+ method: 'POST',
325
+ headers: {
326
+ 'Content-Type': 'application/json',
327
+ ...(authToken && {
328
+ 'Authorization': `Bearer ${authToken}`
329
+ })
330
+ },
331
+ body: JSON.stringify({
332
+ session: {
333
+ username: finalUsername,
334
+ platform: 'youtube',
335
+ timestamp: new Date().toISOString(),
336
+ channelName: channelName,
337
+ channelId: channelId
338
+ },
339
+ googleUser: userInfo.user,
340
+ accessToken: tokens.accessToken,
341
+ idToken: tokens.idToken,
342
+ refreshToken: refreshToken,
343
+ // CRITICAL: Include refresh token
344
+ serverAuthCode: currentUser === null || currentUser === void 0 ? void 0 : currentUser.serverAuthCode,
345
+ userAccountInfo: {
346
+ username: finalUsername,
347
+ email: (_userInfo$user6 = userInfo.user) === null || _userInfo$user6 === void 0 ? void 0 : _userInfo$user6.email,
348
+ authToken: authToken,
349
+ channelName: channelName,
350
+ channelId: channelId,
351
+ userIdentifier: authToken ? `user-${authToken.substring(0, 10)}` : `youtube-${(_userInfo$user7 = userInfo.user) === null || _userInfo$user7 === void 0 ? void 0 : _userInfo$user7.email}`,
352
+ googleId: (_userInfo$user8 = userInfo.user) === null || _userInfo$user8 === void 0 ? void 0 : _userInfo$user8.id
353
+ },
354
+ tokenExpiry: new Date(Date.now() + 3600 * 1000).toISOString(),
355
+ // 1 hour from now
356
+ requestRefreshToken: true
357
+ })
358
+ });
359
+ if (backendResponse.ok) {
360
+ const responseData = await backendResponse.json();
361
+ console.log('✅ YouTube connection processed by backend:', responseData);
230
362
  return true;
231
- } catch (error) {
232
- console.error('Google Sign-In error:', error);
233
- const {
234
- statusCodes: StatusCodes
235
- } = require('@react-native-google-signin/google-signin');
236
- if (error.code === StatusCodes.SIGN_IN_CANCELLED) {
237
- console.log('User cancelled the sign-in flow');
238
- } else if (error.code === StatusCodes.IN_PROGRESS) {
239
- console.log('Sign-in is in progress already');
240
- } else if (error.code === StatusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
241
- console.log('Play services not available or outdated');
242
- } else {
243
- console.log('Some other error happened');
244
- }
363
+ } else {
364
+ const errorData = await backendResponse.text();
365
+ console.error('❌ Backend processing failed:', backendResponse.status, errorData);
245
366
  return false;
246
367
  }
368
+ } catch (error) {
369
+ console.error('❌ Google Sign-In error:', error);
370
+ const {
371
+ statusCodes: StatusCodes
372
+ } = require('@react-native-google-signin/google-signin');
373
+ if (error.code === StatusCodes.SIGN_IN_CANCELLED) {
374
+ console.log('User cancelled Google Sign-In');
375
+ } else if (error.code === StatusCodes.IN_PROGRESS) {
376
+ console.log('Google Sign-In already in progress');
377
+ } else if (error.code === StatusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
378
+ console.log('Google Play Services not available');
379
+ }
380
+ return false;
247
381
  }
248
- throw new Error(`Native authentication not supported for ${platform}`);
249
- } catch (error) {
250
- console.error(`Error initiating native auth for ${platform}:`, error);
251
- throw error;
252
382
  }
383
+ return false;
253
384
  };
254
385
 
255
386
  /**
@@ -316,5 +447,171 @@ const testApiConnectivity = async () => {
316
447
  };
317
448
  }
318
449
  };
450
+
451
+ /**
452
+ * 🔄 REFRESH GOOGLE TOKENS
453
+ */
319
454
  exports.testApiConnectivity = testApiConnectivity;
455
+ const refreshGoogleTokens = async () => {
456
+ try {
457
+ console.log('🔄 Attempting to refresh Google tokens...');
458
+ const {
459
+ GoogleSignin
460
+ } = require('@react-native-google-signin/google-signin');
461
+ const currentUser = await GoogleSignin.getCurrentUser();
462
+ if (!currentUser) {
463
+ console.log('❌ User not signed in to Google, cannot refresh tokens');
464
+ return null;
465
+ }
466
+ const tokens = await GoogleSignin.getTokens();
467
+ console.log('✅ Successfully refreshed Google tokens');
468
+ return {
469
+ accessToken: tokens.accessToken,
470
+ idToken: tokens.idToken
471
+ };
472
+ } catch (error) {
473
+ console.error('❌ Failed to refresh Google tokens:', error);
474
+
475
+ // If refresh fails, try to sign in again
476
+ try {
477
+ console.log('🔄 Refresh failed, attempting re-authentication...');
478
+ const {
479
+ GoogleSignin
480
+ } = require('@react-native-google-signin/google-signin');
481
+ const userInfo = await GoogleSignin.signIn();
482
+ const tokens = await GoogleSignin.getTokens();
483
+ console.log('✅ Re-authentication successful');
484
+ return {
485
+ accessToken: tokens.accessToken,
486
+ idToken: tokens.idToken
487
+ };
488
+ } catch (signInError) {
489
+ console.error('❌ Re-authentication also failed:', signInError);
490
+ return null;
491
+ }
492
+ }
493
+ };
494
+
495
+ /**
496
+ * 🔄 REFRESH YOUTUBE TOKENS
497
+ */
498
+ exports.refreshGoogleTokens = refreshGoogleTokens;
499
+ const refreshYouTubeTokens = async () => {
500
+ try {
501
+ var _currentUser$user2;
502
+ console.log('🔄 Refreshing YouTube tokens...');
503
+
504
+ // Get fresh tokens from Google SDK
505
+ const freshTokens = await refreshGoogleTokens();
506
+ if (!freshTokens) {
507
+ console.error('❌ Failed to get fresh tokens from Google SDK');
508
+ return false;
509
+ }
510
+
511
+ // Get current user info
512
+ const {
513
+ GoogleSignin
514
+ } = require('@react-native-google-signin/google-signin');
515
+ const currentUser = await GoogleSignin.getCurrentUser();
516
+ if (!currentUser) {
517
+ console.error('❌ No current Google user found');
518
+ return false;
519
+ }
520
+
521
+ // Get stored auth token
522
+ const authToken = (await _asyncStorage.default.getItem('onairos_jwt_token')) || (await _asyncStorage.default.getItem('enoch_token')) || (await _asyncStorage.default.getItem('auth_token'));
523
+ if (!authToken) {
524
+ console.error('❌ No auth token found for YouTube refresh');
525
+ return false;
526
+ }
527
+
528
+ // Send refreshed tokens to backend
529
+ const refreshResponse = await fetch('https://api2.onairos.uk/youtube/refresh-token', {
530
+ method: 'POST',
531
+ headers: {
532
+ 'Content-Type': 'application/json',
533
+ 'Authorization': `Bearer ${authToken}`
534
+ },
535
+ body: JSON.stringify({
536
+ accessToken: freshTokens.accessToken,
537
+ idToken: freshTokens.idToken,
538
+ refreshToken: currentUser.serverAuthCode,
539
+ userEmail: (_currentUser$user2 = currentUser.user) === null || _currentUser$user2 === void 0 ? void 0 : _currentUser$user2.email,
540
+ tokenExpiry: new Date(Date.now() + 3600 * 1000).toISOString(),
541
+ timestamp: new Date().toISOString()
542
+ })
543
+ });
544
+ if (refreshResponse.ok) {
545
+ const responseData = await refreshResponse.json();
546
+ console.log('✅ YouTube tokens refreshed successfully:', responseData);
547
+ return true;
548
+ } else {
549
+ const errorData = await refreshResponse.text();
550
+ console.error('❌ YouTube token refresh failed:', refreshResponse.status, errorData);
551
+ return false;
552
+ }
553
+ } catch (error) {
554
+ console.error('❌ Error refreshing YouTube tokens:', error);
555
+ return false;
556
+ }
557
+ };
558
+
559
+ /**
560
+ * 🎯 ENHANCED OAUTH CALLBACK HANDLER
561
+ */
562
+ exports.refreshYouTubeTokens = refreshYouTubeTokens;
563
+ const handleOAuthCallbackUrl = url => {
564
+ try {
565
+ console.log('🔍 Processing OAuth callback URL:', url);
566
+
567
+ // Parse the URL
568
+ const parsedUrl = new URL(url);
569
+
570
+ // Extract platform and code
571
+ const platform = parsedUrl.searchParams.get('platform') || parsedUrl.pathname.split('/').find(segment => ['instagram', 'youtube', 'reddit', 'pinterest', 'email'].includes(segment));
572
+ const code = parsedUrl.searchParams.get('code');
573
+ const error = parsedUrl.searchParams.get('error');
574
+ if (error) {
575
+ console.error('❌ OAuth error in callback:', error);
576
+ return {
577
+ success: false
578
+ };
579
+ }
580
+ if (code && platform) {
581
+ console.log(`✅ OAuth callback processed: ${platform} with code: ${code.substring(0, 10)}...`);
582
+ return {
583
+ platform,
584
+ code,
585
+ success: true
586
+ };
587
+ }
588
+ console.warn('⚠️ OAuth callback missing platform or code');
589
+ return {
590
+ success: false
591
+ };
592
+ } catch (error) {
593
+ console.error('❌ Error processing OAuth callback:', error);
594
+ return {
595
+ success: false
596
+ };
597
+ }
598
+ };
599
+
600
+ /**
601
+ * 🔧 UPDATE GOOGLE CLIENT IDS
602
+ * Allows apps to configure their own Google client IDs
603
+ */
604
+ exports.handleOAuthCallbackUrl = handleOAuthCallbackUrl;
605
+ const updateGoogleClientIds = config => {
606
+ console.log('🔧 Updating Google client IDs configuration');
607
+ if (config.webClientId || config.iosClientId) {
608
+ // Update the YouTube configuration
609
+ PLATFORM_AUTH_CONFIG.youtube = {
610
+ ...PLATFORM_AUTH_CONFIG.youtube,
611
+ clientId: config.webClientId || PLATFORM_AUTH_CONFIG.youtube.clientId
612
+ };
613
+ console.log('✅ Google client IDs updated successfully');
614
+ }
615
+ };
616
+ exports.updateGoogleClientIds = updateGoogleClientIds;
320
617
  //# sourceMappingURL=platformAuthService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","nativeSDKPackage","reddit","pinterest","email","platform","config","exports","getAuthEndpoint","getPlatformColor","initiateOAuth","username","appName","console","log","error","Error","state","jsonData","session","oauthState","response","fetch","method","headers","body","JSON","stringify","status","ok","errorText","text","responseData","json","instagramURL","data","redditURL","pinterestURL","youtubeURL","emailURL","url","initiateNativeAuth","GoogleSignin","statusCodes","require","configure","scopes","webClientId","iosClientId","offlineAccess","hostedDomain","forceCodeForRefreshToken","hasPlayServices","userInfo","signIn","tokens","getTokens","StatusCodes","code","SIGN_IN_CANCELLED","IN_PROGRESS","PLAY_SERVICES_NOT_AVAILABLE","handleOAuthCallback","parsedUrl","URL","searchParams","get","isOAuthCallback","startsWith","testApiConnectivity","success","message"],"sourceRoot":"..\\..\\..\\src","sources":["services/platformAuthService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","e","__esModule","default","PLATFORM_AUTH_CONFIG","instagram","hasNativeSDK","authEndpoint","color","youtube","nativeSDKPackage","clientId","redirectUri","scope","responseType","reddit","pinterest","email","platform","config","exports","getAuthEndpoint","getPlatformColor","initiateOAuth","username","appName","console","log","error","Error","state","jsonData","session","oauthState","response","fetch","method","headers","body","JSON","stringify","status","ok","errorText","text","responseData","json","instagramURL","data","redditURL","pinterestURL","youtubeURL","emailURL","url","initiateNativeAuth","_userInfo$user","_currentUser$user","_userInfo$user4","_userInfo$user6","_userInfo$user7","_userInfo$user8","GoogleSignin","statusCodes","configure","webClientId","iosClientId","scopes","offlineAccess","hostedDomain","forceCodeForRefreshToken","accountName","hasPlayServices","userInfo","signIn","user","tokens","getTokens","currentUser","getCurrentUser","refreshToken","serverAuthCode","warn","channelName","channelId","channelResponse","accessToken","channelData","items","length","snippet","title","id","channelError","_userInfo$user2","_userInfo$user3","name","authToken","AsyncStorage","getItem","storedUsername","finalUsername","trim","_userInfo$user5","fallbackEmail","onairosSignupResponse","_onairosResponseData$","onairosResponseData","token","jwt","setItem","tokenError","backendResponse","timestamp","Date","toISOString","googleUser","idToken","userAccountInfo","userIdentifier","substring","googleId","tokenExpiry","now","requestRefreshToken","errorData","StatusCodes","code","SIGN_IN_CANCELLED","IN_PROGRESS","PLAY_SERVICES_NOT_AVAILABLE","handleOAuthCallback","parsedUrl","URL","searchParams","get","isOAuthCallback","startsWith","testApiConnectivity","success","message","refreshGoogleTokens","signInError","refreshYouTubeTokens","_currentUser$user2","freshTokens","refreshResponse","userEmail","handleOAuthCallbackUrl","pathname","split","find","segment","includes","updateGoogleClientIds"],"sourceRoot":"..\\..\\..\\src","sources":["services/platformAuthService.ts"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import { TrainingModal } from './TrainingModal';
6
6
  import { OAuthWebView } from './onboarding/OAuthWebView';
7
7
  import { useConnections } from '../hooks/useConnections';
8
8
  import { COLORS } from '../constants';
9
- import { initiateOAuth, initiateNativeAuth, hasNativeSDK, isOAuthCallback, testApiConnectivity } from '../services/platformAuthService';
9
+ import { initiateOAuth, initiateNativeAuth, hasNativeSDK, isOAuthCallback, testApiConnectivity, handleOAuthCallbackUrl } from '../services/platformAuthService';
10
10
  import { init as opacityInit, OpacityEnvironment, get as opacityGet } from '@opacity-labs/react-native-opacity';
11
11
  const {
12
12
  height,
@@ -267,7 +267,7 @@ export const UniversalOnboarding = ({
267
267
  if (hasNativeSDK(platformId)) {
268
268
  console.log(`📱 Using native SDK for ${platformId}`);
269
269
  // Use native SDK for authentication
270
- const success = await initiateNativeAuth(platformId);
270
+ const success = await initiateNativeAuth(platformId, username);
271
271
  if (success) {
272
272
  console.log(`✅ Native authentication successful for ${platformId}`);
273
273
  // Update platform toggle state
@@ -350,10 +350,35 @@ export const UniversalOnboarding = ({
350
350
  * Handles OAuth callback URLs
351
351
  */
352
352
  const handleOAuthCallback = useCallback(url => {
353
- console.log('OAuth callback received:', url);
354
- // Handle the OAuth callback here
355
- // This would typically extract the authorization code and complete the OAuth flow
356
- }, []);
353
+ console.log('🔗 OAuth callback received:', url);
354
+ const result = handleOAuthCallbackUrl(url);
355
+ if (result.success && result.platform && result.code) {
356
+ console.log(`✅ OAuth successful for ${result.platform}`);
357
+
358
+ // Update connections state
359
+ setConnections(prev => ({
360
+ ...prev,
361
+ [result.platform]: {
362
+ userName: username,
363
+ connected: true
364
+ }
365
+ }));
366
+
367
+ // Update platform toggles
368
+ setPlatformToggles(prev => ({
369
+ ...prev,
370
+ [result.platform]: true
371
+ }));
372
+
373
+ // Close OAuth window and return to connect step
374
+ setOauthUrl('');
375
+ setCurrentPlatform('');
376
+ setStep('connect');
377
+ console.log(`🎉 ${result.platform} successfully connected via OAuth`);
378
+ } else {
379
+ console.error('❌ OAuth callback failed or incomplete');
380
+ }
381
+ }, [username]);
357
382
 
358
383
  /**
359
384
  * Handles completion of the OAuth flow