@oxyhq/services 5.3.2 → 5.3.3

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.
@@ -0,0 +1,527 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect } from 'react';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, Alert, Image, Dimensions } from 'react-native';
5
+ import { useOxy } from '../context/OxyContext';
6
+ import { fontFamilies } from '../styles/fonts';
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ const ModernAccountSwitcherScreen = ({
9
+ onClose,
10
+ theme,
11
+ navigate,
12
+ goBack,
13
+ oxyServices
14
+ }) => {
15
+ const {
16
+ user,
17
+ sessions,
18
+ activeSessionId,
19
+ switchSession,
20
+ removeSession,
21
+ logoutAll,
22
+ isLoading
23
+ } = useOxy();
24
+ const [sessionsWithUsers, setSessionsWithUsers] = useState([]);
25
+ const [switchingToUserId, setSwitchingToUserId] = useState(null);
26
+ const [removingUserId, setRemovingUserId] = useState(null);
27
+ const screenWidth = Dimensions.get('window').width;
28
+ const isDarkTheme = theme === 'dark';
29
+
30
+ // Modern color scheme
31
+ const colors = {
32
+ background: isDarkTheme ? '#000000' : '#FFFFFF',
33
+ surface: isDarkTheme ? '#1C1C1E' : '#F2F2F7',
34
+ card: isDarkTheme ? '#2C2C2E' : '#FFFFFF',
35
+ text: isDarkTheme ? '#FFFFFF' : '#000000',
36
+ secondaryText: isDarkTheme ? '#8E8E93' : '#6D6D70',
37
+ accent: '#007AFF',
38
+ destructive: '#FF3B30',
39
+ success: '#34C759',
40
+ border: isDarkTheme ? '#38383A' : '#C6C6C8',
41
+ activeCard: isDarkTheme ? '#0A84FF20' : '#007AFF15',
42
+ shadow: isDarkTheme ? 'rgba(0,0,0,0.3)' : 'rgba(0,0,0,0.1)'
43
+ };
44
+
45
+ // Load user profiles for sessions
46
+ useEffect(() => {
47
+ const loadUserProfiles = async () => {
48
+ if (!sessions.length || !oxyServices) return;
49
+ const updatedSessions = sessions.map(session => ({
50
+ ...session,
51
+ isLoadingProfile: true
52
+ }));
53
+ setSessionsWithUsers(updatedSessions);
54
+
55
+ // Load profiles for each session
56
+ for (let i = 0; i < sessions.length; i++) {
57
+ const session = sessions[i];
58
+ try {
59
+ // Try to get user profile using the session
60
+ const userProfile = await oxyServices.getUserBySession(session.sessionId);
61
+ setSessionsWithUsers(prev => prev.map(s => s.sessionId === session.sessionId ? {
62
+ ...s,
63
+ userProfile,
64
+ isLoadingProfile: false
65
+ } : s));
66
+ } catch (error) {
67
+ console.error(`Failed to load profile for session ${session.sessionId}:`, error);
68
+ setSessionsWithUsers(prev => prev.map(s => s.sessionId === session.sessionId ? {
69
+ ...s,
70
+ isLoadingProfile: false
71
+ } : s));
72
+ }
73
+ }
74
+ };
75
+ loadUserProfiles();
76
+ }, [sessions, oxyServices]);
77
+ const handleSwitchSession = async sessionId => {
78
+ if (sessionId === user?.sessionId) return; // Already active session
79
+
80
+ setSwitchingToUserId(sessionId);
81
+ try {
82
+ await switchSession(sessionId);
83
+ Alert.alert('Success', 'Account switched successfully!');
84
+ if (onClose) {
85
+ onClose();
86
+ }
87
+ } catch (error) {
88
+ console.error('Switch session failed:', error);
89
+ Alert.alert('Switch Failed', 'There was a problem switching accounts. Please try again.');
90
+ } finally {
91
+ setSwitchingToUserId(null);
92
+ }
93
+ };
94
+ const handleRemoveSession = async sessionId => {
95
+ const sessionToRemove = sessionsWithUsers.find(s => s.sessionId === sessionId);
96
+ if (!sessionToRemove) return;
97
+ const displayName = typeof sessionToRemove.userProfile?.name === 'object' ? sessionToRemove.userProfile.name.full || sessionToRemove.userProfile.name.first || sessionToRemove.userProfile.username : sessionToRemove.userProfile?.name || sessionToRemove.userProfile?.username || 'this account';
98
+ Alert.alert('Remove Account', `Are you sure you want to remove ${displayName} from this device? You'll need to sign in again to access this account.`, [{
99
+ text: 'Cancel',
100
+ style: 'cancel'
101
+ }, {
102
+ text: 'Remove',
103
+ style: 'destructive',
104
+ onPress: async () => {
105
+ setRemovingUserId(sessionId);
106
+ try {
107
+ await removeSession(sessionId);
108
+ Alert.alert('Success', 'Account removed successfully!');
109
+ } catch (error) {
110
+ console.error('Remove session failed:', error);
111
+ Alert.alert('Remove Failed', 'There was a problem removing the account. Please try again.');
112
+ } finally {
113
+ setRemovingUserId(null);
114
+ }
115
+ }
116
+ }], {
117
+ cancelable: true
118
+ });
119
+ };
120
+ const handleLogoutAll = async () => {
121
+ Alert.alert('Sign Out All', 'Are you sure you want to sign out of all accounts on this device?', [{
122
+ text: 'Cancel',
123
+ style: 'cancel'
124
+ }, {
125
+ text: 'Sign Out All',
126
+ style: 'destructive',
127
+ onPress: async () => {
128
+ try {
129
+ await logoutAll();
130
+ Alert.alert('Success', 'All accounts signed out successfully!');
131
+ if (onClose) {
132
+ onClose();
133
+ }
134
+ } catch (error) {
135
+ console.error('Logout all failed:', error);
136
+ Alert.alert('Logout Failed', 'There was a problem signing out. Please try again.');
137
+ }
138
+ }
139
+ }], {
140
+ cancelable: true
141
+ });
142
+ };
143
+ const renderSessionItem = sessionWithUser => {
144
+ const isActive = sessionWithUser.sessionId === activeSessionId;
145
+ const isSwitching = switchingToUserId === sessionWithUser.sessionId;
146
+ const isRemoving = removingUserId === sessionWithUser.sessionId;
147
+ const {
148
+ userProfile,
149
+ isLoadingProfile
150
+ } = sessionWithUser;
151
+ const displayName = typeof userProfile?.name === 'object' ? userProfile.name.full || userProfile.name.first || userProfile.username : userProfile?.name || userProfile?.username || 'Unknown User';
152
+ const username = userProfile?.username || 'unknown';
153
+ const avatarUrl = userProfile?.avatar?.url;
154
+ return /*#__PURE__*/_jsxs(View, {
155
+ style: [styles.sessionCard, {
156
+ backgroundColor: isActive ? colors.activeCard : colors.card,
157
+ borderColor: isActive ? colors.accent : colors.border,
158
+ borderWidth: isActive ? 2 : 1,
159
+ shadowColor: colors.shadow
160
+ }],
161
+ children: [/*#__PURE__*/_jsxs(View, {
162
+ style: styles.sessionHeader,
163
+ children: [/*#__PURE__*/_jsxs(View, {
164
+ style: styles.avatarContainer,
165
+ children: [isLoadingProfile ? /*#__PURE__*/_jsx(View, {
166
+ style: [styles.avatarPlaceholder, {
167
+ backgroundColor: colors.surface
168
+ }],
169
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
170
+ size: "small",
171
+ color: colors.accent
172
+ })
173
+ }) : avatarUrl ? /*#__PURE__*/_jsx(Image, {
174
+ source: {
175
+ uri: avatarUrl
176
+ },
177
+ style: styles.avatar
178
+ }) : /*#__PURE__*/_jsx(View, {
179
+ style: [styles.avatarPlaceholder, {
180
+ backgroundColor: colors.surface
181
+ }],
182
+ children: /*#__PURE__*/_jsx(Text, {
183
+ style: [styles.avatarText, {
184
+ color: colors.accent
185
+ }],
186
+ children: displayName.charAt(0).toUpperCase()
187
+ })
188
+ }), isActive && /*#__PURE__*/_jsx(View, {
189
+ style: [styles.activeBadge, {
190
+ backgroundColor: colors.success
191
+ }],
192
+ children: /*#__PURE__*/_jsx(Text, {
193
+ style: styles.activeBadgeText,
194
+ children: "\u2713"
195
+ })
196
+ })]
197
+ }), /*#__PURE__*/_jsxs(View, {
198
+ style: styles.userInfo,
199
+ children: [/*#__PURE__*/_jsx(Text, {
200
+ style: [styles.displayName, {
201
+ color: colors.text
202
+ }],
203
+ numberOfLines: 1,
204
+ children: displayName
205
+ }), /*#__PURE__*/_jsxs(Text, {
206
+ style: [styles.username, {
207
+ color: colors.secondaryText
208
+ }],
209
+ numberOfLines: 1,
210
+ children: ["@", username]
211
+ }), /*#__PURE__*/_jsxs(Text, {
212
+ style: [styles.lastActive, {
213
+ color: colors.secondaryText
214
+ }],
215
+ numberOfLines: 1,
216
+ children: ["Last active: ", new Date(sessionWithUser.lastActive).toLocaleDateString()]
217
+ })]
218
+ })]
219
+ }), /*#__PURE__*/_jsxs(View, {
220
+ style: styles.sessionActions,
221
+ children: [!isActive && /*#__PURE__*/_jsx(TouchableOpacity, {
222
+ style: [styles.switchButton, {
223
+ borderColor: colors.accent,
224
+ backgroundColor: colors.background
225
+ }],
226
+ onPress: () => handleSwitchSession(sessionWithUser.sessionId),
227
+ disabled: isSwitching || isRemoving,
228
+ children: isSwitching ? /*#__PURE__*/_jsx(ActivityIndicator, {
229
+ color: colors.accent,
230
+ size: "small"
231
+ }) : /*#__PURE__*/_jsx(Text, {
232
+ style: [styles.switchButtonText, {
233
+ color: colors.accent
234
+ }],
235
+ children: "Switch"
236
+ })
237
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
238
+ style: [styles.removeButton, {
239
+ borderColor: colors.destructive,
240
+ backgroundColor: colors.background
241
+ }],
242
+ onPress: () => handleRemoveSession(sessionWithUser.sessionId),
243
+ disabled: isSwitching || isRemoving,
244
+ children: isRemoving ? /*#__PURE__*/_jsx(ActivityIndicator, {
245
+ color: colors.destructive,
246
+ size: "small"
247
+ }) : /*#__PURE__*/_jsx(Text, {
248
+ style: [styles.removeButtonText, {
249
+ color: colors.destructive
250
+ }],
251
+ children: "Remove"
252
+ })
253
+ })]
254
+ })]
255
+ }, sessionWithUser.sessionId);
256
+ };
257
+ return /*#__PURE__*/_jsxs(View, {
258
+ style: [styles.container, {
259
+ backgroundColor: colors.background
260
+ }],
261
+ children: [/*#__PURE__*/_jsxs(View, {
262
+ style: styles.header,
263
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
264
+ style: styles.backButton,
265
+ onPress: goBack,
266
+ children: /*#__PURE__*/_jsx(Text, {
267
+ style: [styles.backButtonText, {
268
+ color: colors.accent
269
+ }],
270
+ children: "\u2039 Back"
271
+ })
272
+ }), /*#__PURE__*/_jsx(Text, {
273
+ style: [styles.title, {
274
+ color: colors.text
275
+ }],
276
+ children: "Accounts"
277
+ }), /*#__PURE__*/_jsx(View, {
278
+ style: styles.headerSpacer
279
+ })]
280
+ }), /*#__PURE__*/_jsx(ScrollView, {
281
+ style: styles.content,
282
+ showsVerticalScrollIndicator: false,
283
+ contentContainerStyle: styles.scrollContent,
284
+ children: isLoading ? /*#__PURE__*/_jsxs(View, {
285
+ style: styles.loadingContainer,
286
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
287
+ size: "large",
288
+ color: colors.accent
289
+ }), /*#__PURE__*/_jsx(Text, {
290
+ style: [styles.loadingText, {
291
+ color: colors.secondaryText
292
+ }],
293
+ children: "Loading accounts..."
294
+ })]
295
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
296
+ children: [/*#__PURE__*/_jsxs(Text, {
297
+ style: [styles.sectionTitle, {
298
+ color: colors.text
299
+ }],
300
+ children: ["Saved Accounts (", sessionsWithUsers.length, ")"]
301
+ }), sessionsWithUsers.length === 0 ? /*#__PURE__*/_jsx(View, {
302
+ style: styles.emptyState,
303
+ children: /*#__PURE__*/_jsx(Text, {
304
+ style: [styles.emptyText, {
305
+ color: colors.secondaryText
306
+ }],
307
+ children: "No saved accounts found"
308
+ })
309
+ }) : sessionsWithUsers.map(renderSessionItem), /*#__PURE__*/_jsxs(View, {
310
+ style: styles.actionsSection,
311
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
312
+ style: [styles.actionButton, {
313
+ borderColor: colors.border,
314
+ backgroundColor: colors.card
315
+ }],
316
+ onPress: () => navigate?.('SignIn'),
317
+ children: /*#__PURE__*/_jsx(Text, {
318
+ style: [styles.actionButtonText, {
319
+ color: colors.text
320
+ }],
321
+ children: "+ Add Another Account"
322
+ })
323
+ }), sessionsWithUsers.length > 0 && /*#__PURE__*/_jsx(TouchableOpacity, {
324
+ style: [styles.actionButton, styles.dangerButton, {
325
+ borderColor: colors.destructive,
326
+ backgroundColor: colors.background
327
+ }],
328
+ onPress: handleLogoutAll,
329
+ children: /*#__PURE__*/_jsx(Text, {
330
+ style: [styles.dangerButtonText, {
331
+ color: colors.destructive
332
+ }],
333
+ children: "Sign Out All Accounts"
334
+ })
335
+ })]
336
+ })]
337
+ })
338
+ })]
339
+ });
340
+ };
341
+ const styles = StyleSheet.create({
342
+ container: {
343
+ flex: 1
344
+ },
345
+ header: {
346
+ flexDirection: 'row',
347
+ alignItems: 'center',
348
+ justifyContent: 'space-between',
349
+ paddingHorizontal: 20,
350
+ paddingTop: 20,
351
+ paddingBottom: 10
352
+ },
353
+ backButton: {
354
+ padding: 8
355
+ },
356
+ backButtonText: {
357
+ fontSize: 18,
358
+ fontFamily: fontFamilies.phuduMedium
359
+ },
360
+ title: {
361
+ fontSize: 24,
362
+ fontFamily: fontFamilies.phuduBold,
363
+ textAlign: 'center'
364
+ },
365
+ headerSpacer: {
366
+ width: 40
367
+ },
368
+ content: {
369
+ flex: 1,
370
+ paddingHorizontal: 20
371
+ },
372
+ scrollContent: {
373
+ paddingBottom: 40
374
+ },
375
+ loadingContainer: {
376
+ flex: 1,
377
+ justifyContent: 'center',
378
+ alignItems: 'center',
379
+ paddingTop: 60
380
+ },
381
+ loadingText: {
382
+ marginTop: 16,
383
+ fontSize: 16,
384
+ fontFamily: fontFamilies.phudu
385
+ },
386
+ sectionTitle: {
387
+ fontSize: 20,
388
+ fontFamily: fontFamilies.phuduSemiBold,
389
+ marginBottom: 20,
390
+ marginTop: 10
391
+ },
392
+ emptyState: {
393
+ alignItems: 'center',
394
+ paddingVertical: 40
395
+ },
396
+ emptyText: {
397
+ fontSize: 16,
398
+ fontFamily: fontFamilies.phudu,
399
+ textAlign: 'center'
400
+ },
401
+ sessionCard: {
402
+ borderRadius: 16,
403
+ marginBottom: 16,
404
+ padding: 20,
405
+ shadowOffset: {
406
+ width: 0,
407
+ height: 2
408
+ },
409
+ shadowOpacity: 0.1,
410
+ shadowRadius: 8,
411
+ elevation: 3
412
+ },
413
+ sessionHeader: {
414
+ flexDirection: 'row',
415
+ alignItems: 'center',
416
+ marginBottom: 16
417
+ },
418
+ avatarContainer: {
419
+ position: 'relative',
420
+ marginRight: 16
421
+ },
422
+ avatar: {
423
+ width: 60,
424
+ height: 60,
425
+ borderRadius: 30
426
+ },
427
+ avatarPlaceholder: {
428
+ width: 60,
429
+ height: 60,
430
+ borderRadius: 30,
431
+ justifyContent: 'center',
432
+ alignItems: 'center'
433
+ },
434
+ avatarText: {
435
+ fontSize: 24,
436
+ fontFamily: fontFamilies.phuduBold
437
+ },
438
+ activeBadge: {
439
+ position: 'absolute',
440
+ bottom: -2,
441
+ right: -2,
442
+ width: 20,
443
+ height: 20,
444
+ borderRadius: 10,
445
+ justifyContent: 'center',
446
+ alignItems: 'center'
447
+ },
448
+ activeBadgeText: {
449
+ color: 'white',
450
+ fontSize: 12,
451
+ fontFamily: fontFamilies.phuduBold
452
+ },
453
+ userInfo: {
454
+ flex: 1,
455
+ justifyContent: 'center'
456
+ },
457
+ displayName: {
458
+ fontSize: 18,
459
+ fontFamily: fontFamilies.phuduSemiBold,
460
+ marginBottom: 4
461
+ },
462
+ username: {
463
+ fontSize: 14,
464
+ fontFamily: fontFamilies.phudu,
465
+ marginBottom: 4
466
+ },
467
+ lastActive: {
468
+ fontSize: 12,
469
+ fontFamily: fontFamilies.phudu
470
+ },
471
+ sessionActions: {
472
+ flexDirection: 'row',
473
+ justifyContent: 'space-between',
474
+ gap: 12
475
+ },
476
+ switchButton: {
477
+ flex: 1,
478
+ paddingVertical: 12,
479
+ paddingHorizontal: 20,
480
+ borderWidth: 1,
481
+ borderRadius: 8,
482
+ alignItems: 'center',
483
+ justifyContent: 'center'
484
+ },
485
+ switchButtonText: {
486
+ fontSize: 14,
487
+ fontFamily: fontFamilies.phuduSemiBold
488
+ },
489
+ removeButton: {
490
+ flex: 1,
491
+ paddingVertical: 12,
492
+ paddingHorizontal: 20,
493
+ borderWidth: 1,
494
+ borderRadius: 8,
495
+ alignItems: 'center',
496
+ justifyContent: 'center'
497
+ },
498
+ removeButtonText: {
499
+ fontSize: 14,
500
+ fontFamily: fontFamilies.phuduSemiBold
501
+ },
502
+ actionsSection: {
503
+ marginTop: 40,
504
+ gap: 16
505
+ },
506
+ actionButton: {
507
+ paddingVertical: 16,
508
+ paddingHorizontal: 20,
509
+ borderWidth: 1,
510
+ borderRadius: 12,
511
+ alignItems: 'center',
512
+ justifyContent: 'center'
513
+ },
514
+ actionButtonText: {
515
+ fontSize: 16,
516
+ fontFamily: fontFamilies.phuduSemiBold
517
+ },
518
+ dangerButton: {
519
+ // Additional styles for danger buttons if needed
520
+ },
521
+ dangerButtonText: {
522
+ fontSize: 16,
523
+ fontFamily: fontFamilies.phuduSemiBold
524
+ }
525
+ });
526
+ export default ModernAccountSwitcherScreen;
527
+ //# sourceMappingURL=ModernAccountSwitcherScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","View","Text","TouchableOpacity","StyleSheet","ActivityIndicator","ScrollView","Alert","Image","Dimensions","useOxy","fontFamilies","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModernAccountSwitcherScreen","onClose","theme","navigate","goBack","oxyServices","user","sessions","activeSessionId","switchSession","removeSession","logoutAll","isLoading","sessionsWithUsers","setSessionsWithUsers","switchingToUserId","setSwitchingToUserId","removingUserId","setRemovingUserId","screenWidth","get","width","isDarkTheme","colors","background","surface","card","text","secondaryText","accent","destructive","success","border","activeCard","shadow","loadUserProfiles","length","updatedSessions","map","session","isLoadingProfile","i","userProfile","getUserBySession","sessionId","prev","s","error","console","handleSwitchSession","alert","handleRemoveSession","sessionToRemove","find","displayName","name","full","first","username","style","onPress","cancelable","handleLogoutAll","renderSessionItem","sessionWithUser","isActive","isSwitching","isRemoving","avatarUrl","avatar","url","styles","sessionCard","backgroundColor","borderColor","borderWidth","shadowColor","children","sessionHeader","avatarContainer","avatarPlaceholder","size","color","source","uri","avatarText","charAt","toUpperCase","activeBadge","activeBadgeText","userInfo","numberOfLines","lastActive","Date","toLocaleDateString","sessionActions","switchButton","disabled","switchButtonText","removeButton","removeButtonText","container","header","backButton","backButtonText","title","headerSpacer","content","showsVerticalScrollIndicator","contentContainerStyle","scrollContent","loadingContainer","loadingText","sectionTitle","emptyState","emptyText","actionsSection","actionButton","actionButtonText","dangerButton","dangerButtonText","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","paddingBottom","padding","fontSize","fontFamily","phuduMedium","phuduBold","textAlign","marginTop","phudu","phuduSemiBold","marginBottom","paddingVertical","borderRadius","shadowOffset","height","shadowOpacity","shadowRadius","elevation","position","marginRight","bottom","right","gap"],"sourceRoot":"../../../../src","sources":["ui/screens/ModernAccountSwitcherScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OxyRouter.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/OxyRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAsBnD,OAAO,EAAE,cAAc,EAAe,MAAM,SAAS,CAAC;AAkEtD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6IvC,CAAC;AAiBF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"OxyRouter.d.ts","sourceRoot":"","sources":["../../../../src/ui/navigation/OxyRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAuBnD,OAAO,EAAE,cAAc,EAAe,MAAM,SAAS,CAAC;AAsEtD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6IvC,CAAC;AAiBF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgOpD,CAAC;AA6IF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAanD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAWtD,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoRpD,CAAC;AA6IF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { BaseScreenProps } from '../navigation/types';
3
+ declare const ModernAccountSwitcherScreen: React.FC<BaseScreenProps>;
4
+ export default ModernAccountSwitcherScreen;
5
+ //# sourceMappingURL=ModernAccountSwitcherScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModernAccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/ModernAccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAanD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAWtD,QAAA,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmV1D,CAAC;AA4LF,eAAe,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.3.2",
3
+ "version": "5.3.3",
4
4
  "description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
5
5
  "main": "lib/commonjs/node/index.js",
6
6
  "module": "lib/module/node/index.js",
@@ -7,6 +7,7 @@ import SignInScreen from '../screens/SignInScreen';
7
7
  import SignUpScreen from '../screens/SignUpScreen';
8
8
  import AccountCenterScreen from '../screens/AccountCenterScreen';
9
9
  import AccountSwitcherScreen from '../screens/AccountSwitcherScreen';
10
+ import ModernAccountSwitcherScreen from '../screens/ModernAccountSwitcherScreen';
10
11
  import SessionManagementScreen from '../screens/SessionManagementScreen';
11
12
  import AccountOverviewScreen from '../screens/AccountOverviewScreen';
12
13
  import AccountSettingsScreen from '../screens/AccountSettingsScreen';
@@ -40,6 +41,10 @@ const routes: Record<string, RouteConfig> = {
40
41
  component: AccountSwitcherScreen,
41
42
  snapPoints: ['70%', '100%'],
42
43
  },
44
+ ModernAccountSwitcher: {
45
+ component: ModernAccountSwitcherScreen,
46
+ snapPoints: ['70%', '100%'],
47
+ },
43
48
  SessionManagement: {
44
49
  component: SessionManagementScreen,
45
50
  snapPoints: ['70%', '100%'],