@oxyhq/services 5.3.4 → 5.3.5

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.
@@ -26,9 +26,11 @@ const AccountSwitcherScreen = ({
26
26
  logoutAll,
27
27
  isLoading
28
28
  } = (0, _OxyContext.useOxy)();
29
- const [sessionsWithUsers, setSessionsWithUsers] = (0, _react.useState)([]);
29
+ const [allDeviceSessions, setAllDeviceSessions] = (0, _react.useState)([]);
30
+ const [loadingDeviceSessions, setLoadingDeviceSessions] = (0, _react.useState)(false);
30
31
  const [switchingToUserId, setSwitchingToUserId] = (0, _react.useState)(null);
31
32
  const [removingUserId, setRemovingUserId] = (0, _react.useState)(null);
33
+ const [showRemoteDevices, setShowRemoteDevices] = (0, _react.useState)(false);
32
34
  const screenWidth = _reactNative.Dimensions.get('window').width;
33
35
  const isDarkTheme = theme === 'dark';
34
36
 
@@ -47,38 +49,36 @@ const AccountSwitcherScreen = ({
47
49
  shadow: isDarkTheme ? 'rgba(0,0,0,0.3)' : 'rgba(0,0,0,0.1)'
48
50
  };
49
51
 
50
- // Load user profiles for sessions
51
- (0, _react.useEffect)(() => {
52
- const loadUserProfiles = async () => {
53
- if (!sessions.length || !oxyServices) return;
54
- const updatedSessions = sessions.map(session => ({
55
- ...session,
56
- isLoadingProfile: true
52
+ // Load all device sessions for remote management
53
+ const loadAllDeviceSessions = async () => {
54
+ if (!activeSessionId || !oxyServices) return;
55
+ setLoadingDeviceSessions(true);
56
+ try {
57
+ const allSessions = await oxyServices.getSessionsBySessionId(activeSessionId);
58
+ const deviceSessions = allSessions.map(session => ({
59
+ sessionId: session.sessionId,
60
+ deviceId: session.deviceId,
61
+ deviceName: session.deviceName || 'Unknown Device',
62
+ isActive: session.isActive,
63
+ lastActive: session.lastActive || new Date().toISOString(),
64
+ expiresAt: session.expiresAt || new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
65
+ isCurrent: session.sessionId === activeSessionId
57
66
  }));
58
- setSessionsWithUsers(updatedSessions);
67
+ setAllDeviceSessions(deviceSessions);
68
+ } catch (error) {
69
+ console.error('Failed to load device sessions:', error);
70
+ _reactNative.Alert.alert('Error', 'Failed to load device sessions');
71
+ } finally {
72
+ setLoadingDeviceSessions(false);
73
+ }
74
+ };
59
75
 
60
- // Load profiles for each session
61
- for (let i = 0; i < sessions.length; i++) {
62
- const session = sessions[i];
63
- try {
64
- // Try to get user profile using the session
65
- const userProfile = await oxyServices.getUserBySession(session.sessionId);
66
- setSessionsWithUsers(prev => prev.map(s => s.sessionId === session.sessionId ? {
67
- ...s,
68
- userProfile,
69
- isLoadingProfile: false
70
- } : s));
71
- } catch (error) {
72
- console.error(`Failed to load profile for session ${session.sessionId}:`, error);
73
- setSessionsWithUsers(prev => prev.map(s => s.sessionId === session.sessionId ? {
74
- ...s,
75
- isLoadingProfile: false
76
- } : s));
77
- }
78
- }
79
- };
80
- loadUserProfiles();
81
- }, [sessions, oxyServices]);
76
+ // Load device sessions when showing remote devices
77
+ (0, _react.useEffect)(() => {
78
+ if (showRemoteDevices) {
79
+ loadAllDeviceSessions();
80
+ }
81
+ }, [showRemoteDevices, activeSessionId, oxyServices]);
82
82
  const handleSwitchSession = async sessionId => {
83
83
  if (sessionId === user?.sessionId) return; // Already active session
84
84
 
@@ -144,6 +144,50 @@ const AccountSwitcherScreen = ({
144
144
  cancelable: true
145
145
  });
146
146
  };
147
+ const handleRemoteSessionLogout = async (sessionId, deviceName) => {
148
+ _reactNative.Alert.alert('Logout Remote Session', `Are you sure you want to logout from "${deviceName}"?`, [{
149
+ text: 'Cancel',
150
+ style: 'cancel'
151
+ }, {
152
+ text: 'Logout',
153
+ style: 'destructive',
154
+ onPress: async () => {
155
+ try {
156
+ await oxyServices.logoutSecureSession(activeSessionId, sessionId);
157
+ _reactNative.Alert.alert('Success', 'Remote session logged out successfully!');
158
+ // Refresh the device sessions list
159
+ await loadAllDeviceSessions();
160
+ } catch (error) {
161
+ console.error('Remote logout failed:', error);
162
+ _reactNative.Alert.alert('Logout Failed', 'There was a problem logging out the remote session. Please try again.');
163
+ }
164
+ }
165
+ }], {
166
+ cancelable: true
167
+ });
168
+ };
169
+ const handleLogoutAllDevices = async () => {
170
+ _reactNative.Alert.alert('Logout All Devices', 'Are you sure you want to logout from all other devices? This will keep your current session active.', [{
171
+ text: 'Cancel',
172
+ style: 'cancel'
173
+ }, {
174
+ text: 'Logout All Others',
175
+ style: 'destructive',
176
+ onPress: async () => {
177
+ try {
178
+ await oxyServices.logoutAllDeviceSessions(activeSessionId, undefined, true);
179
+ _reactNative.Alert.alert('Success', 'All other device sessions logged out successfully!');
180
+ // Refresh the device sessions list
181
+ await loadAllDeviceSessions();
182
+ } catch (error) {
183
+ console.error('Logout all devices failed:', error);
184
+ _reactNative.Alert.alert('Logout Failed', 'There was a problem logging out other devices. Please try again.');
185
+ }
186
+ }
187
+ }], {
188
+ cancelable: true
189
+ });
190
+ };
147
191
  const renderSessionItem = session => {
148
192
  const isActive = session.sessionId === activeSessionId;
149
193
  const isSwitching = switchingToUserId === session.sessionId;
@@ -210,6 +254,56 @@ const AccountSwitcherScreen = ({
210
254
  })]
211
255
  }, session.sessionId);
212
256
  };
257
+ const renderDeviceSessionItem = deviceSession => {
258
+ const isCurrentSession = deviceSession.isCurrent;
259
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
260
+ style: [styles.userItem, {
261
+ backgroundColor: isCurrentSession ? colors.activeCard : colors.surface,
262
+ borderColor: isCurrentSession ? colors.accent : colors.border
263
+ }],
264
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
265
+ style: styles.userInfo,
266
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
267
+ style: [styles.username, {
268
+ color: colors.text
269
+ }],
270
+ children: [deviceSession.deviceName, isCurrentSession && ' (This Device)']
271
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
272
+ style: [styles.email, {
273
+ color: isDarkTheme ? '#BBBBBB' : '#666666'
274
+ }],
275
+ children: ["Last active: ", new Date(deviceSession.lastActive).toLocaleDateString()]
276
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
277
+ style: [styles.email, {
278
+ color: isDarkTheme ? '#BBBBBB' : '#666666'
279
+ }],
280
+ children: ["Device ID: ", deviceSession.deviceId.substring(0, 8), "..."]
281
+ }), isCurrentSession && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
282
+ style: [styles.activeBadge, {
283
+ backgroundColor: colors.success
284
+ }],
285
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
286
+ style: styles.activeBadgeText,
287
+ children: "Current"
288
+ })
289
+ })]
290
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
291
+ style: styles.userActions,
292
+ children: !isCurrentSession && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
293
+ style: [styles.removeButton, {
294
+ borderColor: colors.destructive
295
+ }],
296
+ onPress: () => handleRemoteSessionLogout(deviceSession.sessionId, deviceSession.deviceName),
297
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
298
+ style: [styles.removeButtonText, {
299
+ color: colors.destructive
300
+ }],
301
+ children: "Logout"
302
+ })
303
+ })
304
+ })]
305
+ }, deviceSession.sessionId);
306
+ };
213
307
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
214
308
  style: [styles.container, {
215
309
  backgroundColor: colors.background
@@ -250,8 +344,64 @@ const AccountSwitcherScreen = ({
250
344
  style: [styles.sectionTitle, {
251
345
  color: colors.text
252
346
  }],
253
- children: ["Sessions (", sessions.length, ")"]
347
+ children: ["Local Sessions (", sessions.length, ")"]
254
348
  }), sessions.map(renderSessionItem)]
349
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
350
+ style: styles.usersContainer,
351
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
352
+ style: styles.sectionHeader,
353
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
354
+ style: [styles.sectionTitle, {
355
+ color: colors.text
356
+ }],
357
+ children: "All Devices & Sessions"
358
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
359
+ style: [styles.toggleButton, {
360
+ borderColor: colors.accent
361
+ }],
362
+ onPress: () => setShowRemoteDevices(!showRemoteDevices),
363
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
364
+ style: [styles.toggleButtonText, {
365
+ color: colors.accent
366
+ }],
367
+ children: showRemoteDevices ? 'Hide' : 'Show'
368
+ })
369
+ })]
370
+ }), showRemoteDevices && /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
371
+ children: loadingDeviceSessions ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
372
+ style: styles.loadingContainer,
373
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
374
+ color: colors.accent,
375
+ size: "small"
376
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
377
+ style: [styles.loadingText, {
378
+ color: colors.secondaryText
379
+ }],
380
+ children: "Loading device sessions..."
381
+ })]
382
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
383
+ children: allDeviceSessions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
384
+ children: [allDeviceSessions.map(renderDeviceSessionItem), allDeviceSessions.filter(s => !s.isCurrent).length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
385
+ style: [styles.actionButton, {
386
+ borderColor: colors.destructive,
387
+ marginTop: 12
388
+ }],
389
+ onPress: handleLogoutAllDevices,
390
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
391
+ style: [styles.actionButtonText, {
392
+ color: colors.destructive
393
+ }],
394
+ children: "Logout All Other Devices"
395
+ })
396
+ })]
397
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
398
+ style: [styles.emptyText, {
399
+ color: colors.secondaryText
400
+ }],
401
+ children: "No other device sessions found"
402
+ })
403
+ })
404
+ })]
255
405
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
256
406
  style: styles.actionsContainer,
257
407
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
@@ -421,6 +571,40 @@ const styles = _reactNative.StyleSheet.create({
421
571
  dangerButtonText: {
422
572
  fontSize: 16,
423
573
  fontFamily: _fonts.fontFamilies.phuduMedium
574
+ },
575
+ sectionHeader: {
576
+ flexDirection: 'row',
577
+ alignItems: 'center',
578
+ justifyContent: 'space-between',
579
+ marginBottom: 16
580
+ },
581
+ toggleButton: {
582
+ paddingHorizontal: 12,
583
+ paddingVertical: 6,
584
+ borderRadius: 6,
585
+ borderWidth: 1
586
+ },
587
+ toggleButtonText: {
588
+ fontSize: 14,
589
+ fontFamily: _fonts.fontFamilies.phuduMedium
590
+ },
591
+ loadingContainer: {
592
+ flexDirection: 'row',
593
+ alignItems: 'center',
594
+ justifyContent: 'center',
595
+ paddingVertical: 20,
596
+ gap: 8
597
+ },
598
+ loadingText: {
599
+ fontSize: 14,
600
+ fontFamily: _fonts.fontFamilies.phudu
601
+ },
602
+ emptyText: {
603
+ fontSize: 14,
604
+ fontFamily: _fonts.fontFamilies.phudu,
605
+ textAlign: 'center',
606
+ paddingVertical: 20,
607
+ fontStyle: 'italic'
424
608
  }
425
609
  });
426
610
  var _default = exports.default = AccountSwitcherScreen;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OxyContext","_fonts","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccountSwitcherScreen","onClose","theme","navigate","goBack","oxyServices","user","sessions","activeSessionId","switchSession","removeSession","logoutAll","isLoading","useOxy","sessionsWithUsers","setSessionsWithUsers","useState","switchingToUserId","setSwitchingToUserId","removingUserId","setRemovingUserId","screenWidth","Dimensions","width","isDarkTheme","colors","background","surface","card","text","secondaryText","accent","destructive","success","border","activeCard","shadow","useEffect","loadUserProfiles","length","updatedSessions","map","session","isLoadingProfile","userProfile","getUserBySession","sessionId","prev","s","error","console","handleSwitchSession","Alert","alert","handleRemoveSession","sessionToRemove","find","style","onPress","cancelable","handleLogoutAll","renderSessionItem","isActive","isSwitching","isRemoving","jsxs","View","styles","userItem","backgroundColor","borderColor","children","userInfo","jsx","Text","username","color","email","Date","lastActive","toLocaleDateString","activeBadge","activeBadgeText","userActions","TouchableOpacity","switchButton","disabled","ActivityIndicator","size","switchButtonText","removeButton","removeButtonText","container","header","backButton","backButtonText","title","placeholder","ScrollView","scrollView","contentContainerStyle","scrollContainer","description","descriptionText","usersContainer","sectionTitle","actionsContainer","actionButton","actionButtonText","dangerButton","dangerButtonText","StyleSheet","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","Platform","OS","paddingBottom","borderBottomWidth","borderBottomColor","paddingVertical","fontSize","fontFamily","fontFamilies","phudu","phuduSemiBold","textAlign","padding","marginBottom","lineHeight","borderRadius","borderWidth","alignSelf","phuduMedium","gap","minWidth","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSwitcherScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OxyContext","_fonts","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccountSwitcherScreen","onClose","theme","navigate","goBack","oxyServices","user","sessions","activeSessionId","switchSession","removeSession","logoutAll","isLoading","useOxy","allDeviceSessions","setAllDeviceSessions","useState","loadingDeviceSessions","setLoadingDeviceSessions","switchingToUserId","setSwitchingToUserId","removingUserId","setRemovingUserId","showRemoteDevices","setShowRemoteDevices","screenWidth","Dimensions","width","isDarkTheme","colors","background","surface","card","text","secondaryText","accent","destructive","success","border","activeCard","shadow","loadAllDeviceSessions","allSessions","getSessionsBySessionId","deviceSessions","map","session","sessionId","deviceId","deviceName","isActive","lastActive","Date","toISOString","expiresAt","now","isCurrent","error","console","Alert","alert","useEffect","handleSwitchSession","handleRemoveSession","sessionToRemove","find","s","style","onPress","cancelable","handleLogoutAll","handleRemoteSessionLogout","logoutSecureSession","handleLogoutAllDevices","logoutAllDeviceSessions","undefined","renderSessionItem","isSwitching","isRemoving","jsxs","View","styles","userItem","backgroundColor","borderColor","children","userInfo","jsx","Text","username","color","email","toLocaleDateString","activeBadge","activeBadgeText","userActions","TouchableOpacity","switchButton","disabled","ActivityIndicator","size","switchButtonText","removeButton","length","removeButtonText","renderDeviceSessionItem","deviceSession","isCurrentSession","substring","container","header","backButton","backButtonText","title","placeholder","ScrollView","scrollView","contentContainerStyle","scrollContainer","description","descriptionText","usersContainer","sectionTitle","sectionHeader","toggleButton","toggleButtonText","Fragment","loadingContainer","loadingText","filter","actionButton","marginTop","actionButtonText","emptyText","actionsContainer","dangerButton","dangerButtonText","StyleSheet","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","Platform","OS","paddingBottom","borderBottomWidth","borderBottomColor","paddingVertical","fontSize","fontFamily","fontFamilies","phudu","phuduSemiBold","textAlign","padding","marginBottom","lineHeight","borderRadius","borderWidth","alignSelf","phuduMedium","gap","minWidth","fontStyle","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSwitcherScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import React, { useState, useEffect } from 'react';
4
4
  import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, Alert, Platform, Dimensions } from 'react-native';
5
5
  import { useOxy } from '../context/OxyContext';
6
6
  import { fontFamilies } from '../styles/fonts';
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
8
  const AccountSwitcherScreen = ({
9
9
  onClose,
10
10
  theme,
@@ -21,9 +21,11 @@ const AccountSwitcherScreen = ({
21
21
  logoutAll,
22
22
  isLoading
23
23
  } = useOxy();
24
- const [sessionsWithUsers, setSessionsWithUsers] = useState([]);
24
+ const [allDeviceSessions, setAllDeviceSessions] = useState([]);
25
+ const [loadingDeviceSessions, setLoadingDeviceSessions] = useState(false);
25
26
  const [switchingToUserId, setSwitchingToUserId] = useState(null);
26
27
  const [removingUserId, setRemovingUserId] = useState(null);
28
+ const [showRemoteDevices, setShowRemoteDevices] = useState(false);
27
29
  const screenWidth = Dimensions.get('window').width;
28
30
  const isDarkTheme = theme === 'dark';
29
31
 
@@ -42,38 +44,36 @@ const AccountSwitcherScreen = ({
42
44
  shadow: isDarkTheme ? 'rgba(0,0,0,0.3)' : 'rgba(0,0,0,0.1)'
43
45
  };
44
46
 
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
47
+ // Load all device sessions for remote management
48
+ const loadAllDeviceSessions = async () => {
49
+ if (!activeSessionId || !oxyServices) return;
50
+ setLoadingDeviceSessions(true);
51
+ try {
52
+ const allSessions = await oxyServices.getSessionsBySessionId(activeSessionId);
53
+ const deviceSessions = allSessions.map(session => ({
54
+ sessionId: session.sessionId,
55
+ deviceId: session.deviceId,
56
+ deviceName: session.deviceName || 'Unknown Device',
57
+ isActive: session.isActive,
58
+ lastActive: session.lastActive || new Date().toISOString(),
59
+ expiresAt: session.expiresAt || new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
60
+ isCurrent: session.sessionId === activeSessionId
52
61
  }));
53
- setSessionsWithUsers(updatedSessions);
62
+ setAllDeviceSessions(deviceSessions);
63
+ } catch (error) {
64
+ console.error('Failed to load device sessions:', error);
65
+ Alert.alert('Error', 'Failed to load device sessions');
66
+ } finally {
67
+ setLoadingDeviceSessions(false);
68
+ }
69
+ };
54
70
 
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]);
71
+ // Load device sessions when showing remote devices
72
+ useEffect(() => {
73
+ if (showRemoteDevices) {
74
+ loadAllDeviceSessions();
75
+ }
76
+ }, [showRemoteDevices, activeSessionId, oxyServices]);
77
77
  const handleSwitchSession = async sessionId => {
78
78
  if (sessionId === user?.sessionId) return; // Already active session
79
79
 
@@ -139,6 +139,50 @@ const AccountSwitcherScreen = ({
139
139
  cancelable: true
140
140
  });
141
141
  };
142
+ const handleRemoteSessionLogout = async (sessionId, deviceName) => {
143
+ Alert.alert('Logout Remote Session', `Are you sure you want to logout from "${deviceName}"?`, [{
144
+ text: 'Cancel',
145
+ style: 'cancel'
146
+ }, {
147
+ text: 'Logout',
148
+ style: 'destructive',
149
+ onPress: async () => {
150
+ try {
151
+ await oxyServices.logoutSecureSession(activeSessionId, sessionId);
152
+ Alert.alert('Success', 'Remote session logged out successfully!');
153
+ // Refresh the device sessions list
154
+ await loadAllDeviceSessions();
155
+ } catch (error) {
156
+ console.error('Remote logout failed:', error);
157
+ Alert.alert('Logout Failed', 'There was a problem logging out the remote session. Please try again.');
158
+ }
159
+ }
160
+ }], {
161
+ cancelable: true
162
+ });
163
+ };
164
+ const handleLogoutAllDevices = async () => {
165
+ Alert.alert('Logout All Devices', 'Are you sure you want to logout from all other devices? This will keep your current session active.', [{
166
+ text: 'Cancel',
167
+ style: 'cancel'
168
+ }, {
169
+ text: 'Logout All Others',
170
+ style: 'destructive',
171
+ onPress: async () => {
172
+ try {
173
+ await oxyServices.logoutAllDeviceSessions(activeSessionId, undefined, true);
174
+ Alert.alert('Success', 'All other device sessions logged out successfully!');
175
+ // Refresh the device sessions list
176
+ await loadAllDeviceSessions();
177
+ } catch (error) {
178
+ console.error('Logout all devices failed:', error);
179
+ Alert.alert('Logout Failed', 'There was a problem logging out other devices. Please try again.');
180
+ }
181
+ }
182
+ }], {
183
+ cancelable: true
184
+ });
185
+ };
142
186
  const renderSessionItem = session => {
143
187
  const isActive = session.sessionId === activeSessionId;
144
188
  const isSwitching = switchingToUserId === session.sessionId;
@@ -205,6 +249,56 @@ const AccountSwitcherScreen = ({
205
249
  })]
206
250
  }, session.sessionId);
207
251
  };
252
+ const renderDeviceSessionItem = deviceSession => {
253
+ const isCurrentSession = deviceSession.isCurrent;
254
+ return /*#__PURE__*/_jsxs(View, {
255
+ style: [styles.userItem, {
256
+ backgroundColor: isCurrentSession ? colors.activeCard : colors.surface,
257
+ borderColor: isCurrentSession ? colors.accent : colors.border
258
+ }],
259
+ children: [/*#__PURE__*/_jsxs(View, {
260
+ style: styles.userInfo,
261
+ children: [/*#__PURE__*/_jsxs(Text, {
262
+ style: [styles.username, {
263
+ color: colors.text
264
+ }],
265
+ children: [deviceSession.deviceName, isCurrentSession && ' (This Device)']
266
+ }), /*#__PURE__*/_jsxs(Text, {
267
+ style: [styles.email, {
268
+ color: isDarkTheme ? '#BBBBBB' : '#666666'
269
+ }],
270
+ children: ["Last active: ", new Date(deviceSession.lastActive).toLocaleDateString()]
271
+ }), /*#__PURE__*/_jsxs(Text, {
272
+ style: [styles.email, {
273
+ color: isDarkTheme ? '#BBBBBB' : '#666666'
274
+ }],
275
+ children: ["Device ID: ", deviceSession.deviceId.substring(0, 8), "..."]
276
+ }), isCurrentSession && /*#__PURE__*/_jsx(View, {
277
+ style: [styles.activeBadge, {
278
+ backgroundColor: colors.success
279
+ }],
280
+ children: /*#__PURE__*/_jsx(Text, {
281
+ style: styles.activeBadgeText,
282
+ children: "Current"
283
+ })
284
+ })]
285
+ }), /*#__PURE__*/_jsx(View, {
286
+ style: styles.userActions,
287
+ children: !isCurrentSession && /*#__PURE__*/_jsx(TouchableOpacity, {
288
+ style: [styles.removeButton, {
289
+ borderColor: colors.destructive
290
+ }],
291
+ onPress: () => handleRemoteSessionLogout(deviceSession.sessionId, deviceSession.deviceName),
292
+ children: /*#__PURE__*/_jsx(Text, {
293
+ style: [styles.removeButtonText, {
294
+ color: colors.destructive
295
+ }],
296
+ children: "Logout"
297
+ })
298
+ })
299
+ })]
300
+ }, deviceSession.sessionId);
301
+ };
208
302
  return /*#__PURE__*/_jsxs(View, {
209
303
  style: [styles.container, {
210
304
  backgroundColor: colors.background
@@ -245,8 +339,64 @@ const AccountSwitcherScreen = ({
245
339
  style: [styles.sectionTitle, {
246
340
  color: colors.text
247
341
  }],
248
- children: ["Sessions (", sessions.length, ")"]
342
+ children: ["Local Sessions (", sessions.length, ")"]
249
343
  }), sessions.map(renderSessionItem)]
344
+ }), /*#__PURE__*/_jsxs(View, {
345
+ style: styles.usersContainer,
346
+ children: [/*#__PURE__*/_jsxs(View, {
347
+ style: styles.sectionHeader,
348
+ children: [/*#__PURE__*/_jsx(Text, {
349
+ style: [styles.sectionTitle, {
350
+ color: colors.text
351
+ }],
352
+ children: "All Devices & Sessions"
353
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
354
+ style: [styles.toggleButton, {
355
+ borderColor: colors.accent
356
+ }],
357
+ onPress: () => setShowRemoteDevices(!showRemoteDevices),
358
+ children: /*#__PURE__*/_jsx(Text, {
359
+ style: [styles.toggleButtonText, {
360
+ color: colors.accent
361
+ }],
362
+ children: showRemoteDevices ? 'Hide' : 'Show'
363
+ })
364
+ })]
365
+ }), showRemoteDevices && /*#__PURE__*/_jsx(_Fragment, {
366
+ children: loadingDeviceSessions ? /*#__PURE__*/_jsxs(View, {
367
+ style: styles.loadingContainer,
368
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
369
+ color: colors.accent,
370
+ size: "small"
371
+ }), /*#__PURE__*/_jsx(Text, {
372
+ style: [styles.loadingText, {
373
+ color: colors.secondaryText
374
+ }],
375
+ children: "Loading device sessions..."
376
+ })]
377
+ }) : /*#__PURE__*/_jsx(_Fragment, {
378
+ children: allDeviceSessions.length > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
379
+ children: [allDeviceSessions.map(renderDeviceSessionItem), allDeviceSessions.filter(s => !s.isCurrent).length > 0 && /*#__PURE__*/_jsx(TouchableOpacity, {
380
+ style: [styles.actionButton, {
381
+ borderColor: colors.destructive,
382
+ marginTop: 12
383
+ }],
384
+ onPress: handleLogoutAllDevices,
385
+ children: /*#__PURE__*/_jsx(Text, {
386
+ style: [styles.actionButtonText, {
387
+ color: colors.destructive
388
+ }],
389
+ children: "Logout All Other Devices"
390
+ })
391
+ })]
392
+ }) : /*#__PURE__*/_jsx(Text, {
393
+ style: [styles.emptyText, {
394
+ color: colors.secondaryText
395
+ }],
396
+ children: "No other device sessions found"
397
+ })
398
+ })
399
+ })]
250
400
  }), /*#__PURE__*/_jsxs(View, {
251
401
  style: styles.actionsContainer,
252
402
  children: [/*#__PURE__*/_jsx(TouchableOpacity, {
@@ -416,6 +566,40 @@ const styles = StyleSheet.create({
416
566
  dangerButtonText: {
417
567
  fontSize: 16,
418
568
  fontFamily: fontFamilies.phuduMedium
569
+ },
570
+ sectionHeader: {
571
+ flexDirection: 'row',
572
+ alignItems: 'center',
573
+ justifyContent: 'space-between',
574
+ marginBottom: 16
575
+ },
576
+ toggleButton: {
577
+ paddingHorizontal: 12,
578
+ paddingVertical: 6,
579
+ borderRadius: 6,
580
+ borderWidth: 1
581
+ },
582
+ toggleButtonText: {
583
+ fontSize: 14,
584
+ fontFamily: fontFamilies.phuduMedium
585
+ },
586
+ loadingContainer: {
587
+ flexDirection: 'row',
588
+ alignItems: 'center',
589
+ justifyContent: 'center',
590
+ paddingVertical: 20,
591
+ gap: 8
592
+ },
593
+ loadingText: {
594
+ fontSize: 14,
595
+ fontFamily: fontFamilies.phudu
596
+ },
597
+ emptyText: {
598
+ fontSize: 14,
599
+ fontFamily: fontFamilies.phudu,
600
+ textAlign: 'center',
601
+ paddingVertical: 20,
602
+ fontStyle: 'italic'
419
603
  }
420
604
  });
421
605
  export default AccountSwitcherScreen;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","View","Text","TouchableOpacity","StyleSheet","ActivityIndicator","ScrollView","Alert","Platform","Dimensions","useOxy","fontFamilies","jsx","_jsx","jsxs","_jsxs","AccountSwitcherScreen","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","style","onPress","cancelable","handleLogoutAll","renderSessionItem","isActive","isSwitching","isRemoving","styles","userItem","backgroundColor","borderColor","children","userInfo","username","color","email","Date","lastActive","toLocaleDateString","activeBadge","activeBadgeText","userActions","switchButton","disabled","size","switchButtonText","removeButton","removeButtonText","container","header","backButton","backButtonText","title","placeholder","scrollView","contentContainerStyle","scrollContainer","description","descriptionText","usersContainer","sectionTitle","actionsContainer","actionButton","actionButtonText","dangerButton","dangerButtonText","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","OS","paddingBottom","borderBottomWidth","borderBottomColor","paddingVertical","fontSize","fontFamily","phudu","phuduSemiBold","textAlign","padding","marginBottom","lineHeight","borderRadius","borderWidth","alignSelf","phuduMedium","gap","minWidth"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSwitcherScreen.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","View","Text","TouchableOpacity","StyleSheet","ActivityIndicator","ScrollView","Alert","Platform","Dimensions","useOxy","fontFamilies","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AccountSwitcherScreen","onClose","theme","navigate","goBack","oxyServices","user","sessions","activeSessionId","switchSession","removeSession","logoutAll","isLoading","allDeviceSessions","setAllDeviceSessions","loadingDeviceSessions","setLoadingDeviceSessions","switchingToUserId","setSwitchingToUserId","removingUserId","setRemovingUserId","showRemoteDevices","setShowRemoteDevices","screenWidth","get","width","isDarkTheme","colors","background","surface","card","text","secondaryText","accent","destructive","success","border","activeCard","shadow","loadAllDeviceSessions","allSessions","getSessionsBySessionId","deviceSessions","map","session","sessionId","deviceId","deviceName","isActive","lastActive","Date","toISOString","expiresAt","now","isCurrent","error","console","alert","handleSwitchSession","handleRemoveSession","sessionToRemove","find","s","style","onPress","cancelable","handleLogoutAll","handleRemoteSessionLogout","logoutSecureSession","handleLogoutAllDevices","logoutAllDeviceSessions","undefined","renderSessionItem","isSwitching","isRemoving","styles","userItem","backgroundColor","borderColor","children","userInfo","username","color","email","toLocaleDateString","activeBadge","activeBadgeText","userActions","switchButton","disabled","size","switchButtonText","removeButton","length","removeButtonText","renderDeviceSessionItem","deviceSession","isCurrentSession","substring","container","header","backButton","backButtonText","title","placeholder","scrollView","contentContainerStyle","scrollContainer","description","descriptionText","usersContainer","sectionTitle","sectionHeader","toggleButton","toggleButtonText","loadingContainer","loadingText","filter","actionButton","marginTop","actionButtonText","emptyText","actionsContainer","dangerButton","dangerButtonText","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","OS","paddingBottom","borderBottomWidth","borderBottomColor","paddingVertical","fontSize","fontFamily","phudu","phuduSemiBold","textAlign","padding","marginBottom","lineHeight","borderRadius","borderWidth","alignSelf","phuduMedium","gap","minWidth","fontStyle"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSwitcherScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"AccountSwitcherScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/AccountSwitcherScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgBtD,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyapD,CAAC;AA+KF,eAAe,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "5.3.4",
3
+ "version": "5.3.5",
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",
@@ -8,7 +8,6 @@ import {
8
8
  ScrollView,
9
9
  Alert,
10
10
  Platform,
11
- Image,
12
11
  Dimensions,
13
12
  } from 'react-native';
14
13
  import { BaseScreenProps } from '../navigation/types';
@@ -17,9 +16,14 @@ import { SecureClientSession } from '../../models/secureSession';
17
16
  import { fontFamilies } from '../styles/fonts';
18
17
  import { User } from '../../models/interfaces';
19
18
 
20
- interface SessionWithUser extends SecureClientSession {
21
- userProfile?: User;
22
- isLoadingProfile?: boolean;
19
+ interface DeviceSession {
20
+ sessionId: string;
21
+ deviceId: string;
22
+ deviceName: string;
23
+ isActive: boolean;
24
+ lastActive: string;
25
+ expiresAt: string;
26
+ isCurrent: boolean;
23
27
  }
24
28
 
25
29
  const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
@@ -39,9 +43,11 @@ const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
39
43
  isLoading
40
44
  } = useOxy();
41
45
 
42
- const [sessionsWithUsers, setSessionsWithUsers] = useState<SessionWithUser[]>([]);
46
+ const [allDeviceSessions, setAllDeviceSessions] = useState<DeviceSession[]>([]);
47
+ const [loadingDeviceSessions, setLoadingDeviceSessions] = useState(false);
43
48
  const [switchingToUserId, setSwitchingToUserId] = useState<string | null>(null);
44
49
  const [removingUserId, setRemovingUserId] = useState<string | null>(null);
50
+ const [showRemoteDevices, setShowRemoteDevices] = useState(false);
45
51
 
46
52
  const screenWidth = Dimensions.get('window').width;
47
53
  const isDarkTheme = theme === 'dark';
@@ -61,46 +67,37 @@ const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
61
67
  shadow: isDarkTheme ? 'rgba(0,0,0,0.3)' : 'rgba(0,0,0,0.1)',
62
68
  };
63
69
 
64
- // Load user profiles for sessions
65
- useEffect(() => {
66
- const loadUserProfiles = async () => {
67
- if (!sessions.length || !oxyServices) return;
68
-
69
- const updatedSessions: SessionWithUser[] = sessions.map(session => ({
70
- ...session,
71
- isLoadingProfile: true,
70
+ // Load all device sessions for remote management
71
+ const loadAllDeviceSessions = async () => {
72
+ if (!activeSessionId || !oxyServices) return;
73
+
74
+ setLoadingDeviceSessions(true);
75
+ try {
76
+ const allSessions = await oxyServices.getSessionsBySessionId(activeSessionId);
77
+ const deviceSessions: DeviceSession[] = allSessions.map((session: any) => ({
78
+ sessionId: session.sessionId,
79
+ deviceId: session.deviceId,
80
+ deviceName: session.deviceName || 'Unknown Device',
81
+ isActive: session.isActive,
82
+ lastActive: session.lastActive || new Date().toISOString(),
83
+ expiresAt: session.expiresAt || new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
84
+ isCurrent: session.sessionId === activeSessionId
72
85
  }));
73
- setSessionsWithUsers(updatedSessions);
74
-
75
- // Load profiles for each session
76
- for (let i = 0; i < sessions.length; i++) {
77
- const session = sessions[i];
78
- try {
79
- // Try to get user profile using the session
80
- const userProfile = await oxyServices.getUserBySession(session.sessionId);
81
-
82
- setSessionsWithUsers(prev =>
83
- prev.map(s =>
84
- s.sessionId === session.sessionId
85
- ? { ...s, userProfile, isLoadingProfile: false }
86
- : s
87
- )
88
- );
89
- } catch (error) {
90
- console.error(`Failed to load profile for session ${session.sessionId}:`, error);
91
- setSessionsWithUsers(prev =>
92
- prev.map(s =>
93
- s.sessionId === session.sessionId
94
- ? { ...s, isLoadingProfile: false }
95
- : s
96
- )
97
- );
98
- }
99
- }
100
- };
86
+ setAllDeviceSessions(deviceSessions);
87
+ } catch (error) {
88
+ console.error('Failed to load device sessions:', error);
89
+ Alert.alert('Error', 'Failed to load device sessions');
90
+ } finally {
91
+ setLoadingDeviceSessions(false);
92
+ }
93
+ };
101
94
 
102
- loadUserProfiles();
103
- }, [sessions, oxyServices]);
95
+ // Load device sessions when showing remote devices
96
+ useEffect(() => {
97
+ if (showRemoteDevices) {
98
+ loadAllDeviceSessions();
99
+ }
100
+ }, [showRemoteDevices, activeSessionId, oxyServices]);
104
101
 
105
102
  const handleSwitchSession = async (sessionId: string) => {
106
103
  if (sessionId === user?.sessionId) return; // Already active session
@@ -183,6 +180,64 @@ const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
183
180
  );
184
181
  };
185
182
 
183
+ const handleRemoteSessionLogout = async (sessionId: string, deviceName: string) => {
184
+ Alert.alert(
185
+ 'Logout Remote Session',
186
+ `Are you sure you want to logout from "${deviceName}"?`,
187
+ [
188
+ {
189
+ text: 'Cancel',
190
+ style: 'cancel',
191
+ },
192
+ {
193
+ text: 'Logout',
194
+ style: 'destructive',
195
+ onPress: async () => {
196
+ try {
197
+ await oxyServices.logoutSecureSession(activeSessionId!, sessionId);
198
+ Alert.alert('Success', 'Remote session logged out successfully!');
199
+ // Refresh the device sessions list
200
+ await loadAllDeviceSessions();
201
+ } catch (error) {
202
+ console.error('Remote logout failed:', error);
203
+ Alert.alert('Logout Failed', 'There was a problem logging out the remote session. Please try again.');
204
+ }
205
+ },
206
+ },
207
+ ],
208
+ { cancelable: true }
209
+ );
210
+ };
211
+
212
+ const handleLogoutAllDevices = async () => {
213
+ Alert.alert(
214
+ 'Logout All Devices',
215
+ 'Are you sure you want to logout from all other devices? This will keep your current session active.',
216
+ [
217
+ {
218
+ text: 'Cancel',
219
+ style: 'cancel',
220
+ },
221
+ {
222
+ text: 'Logout All Others',
223
+ style: 'destructive',
224
+ onPress: async () => {
225
+ try {
226
+ await oxyServices.logoutAllDeviceSessions(activeSessionId!, undefined, true);
227
+ Alert.alert('Success', 'All other device sessions logged out successfully!');
228
+ // Refresh the device sessions list
229
+ await loadAllDeviceSessions();
230
+ } catch (error) {
231
+ console.error('Logout all devices failed:', error);
232
+ Alert.alert('Logout Failed', 'There was a problem logging out other devices. Please try again.');
233
+ }
234
+ },
235
+ },
236
+ ],
237
+ { cancelable: true }
238
+ );
239
+ };
240
+
186
241
  const renderSessionItem = (session: SecureClientSession) => {
187
242
  const isActive = session.sessionId === activeSessionId;
188
243
  const isSwitching = switchingToUserId === session.sessionId;
@@ -244,6 +299,52 @@ const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
244
299
  );
245
300
  };
246
301
 
302
+ const renderDeviceSessionItem = (deviceSession: DeviceSession) => {
303
+ const isCurrentSession = deviceSession.isCurrent;
304
+
305
+ return (
306
+ <View
307
+ key={deviceSession.sessionId}
308
+ style={[
309
+ styles.userItem,
310
+ {
311
+ backgroundColor: isCurrentSession ? colors.activeCard : colors.surface,
312
+ borderColor: isCurrentSession ? colors.accent : colors.border,
313
+ },
314
+ ]}
315
+ >
316
+ <View style={styles.userInfo}>
317
+ <Text style={[styles.username, { color: colors.text }]}>
318
+ {deviceSession.deviceName}
319
+ {isCurrentSession && ' (This Device)'}
320
+ </Text>
321
+ <Text style={[styles.email, { color: isDarkTheme ? '#BBBBBB' : '#666666' }]}>
322
+ Last active: {new Date(deviceSession.lastActive).toLocaleDateString()}
323
+ </Text>
324
+ <Text style={[styles.email, { color: isDarkTheme ? '#BBBBBB' : '#666666' }]}>
325
+ Device ID: {deviceSession.deviceId.substring(0, 8)}...
326
+ </Text>
327
+ {isCurrentSession && (
328
+ <View style={[styles.activeBadge, { backgroundColor: colors.success }]}>
329
+ <Text style={styles.activeBadgeText}>Current</Text>
330
+ </View>
331
+ )}
332
+ </View>
333
+
334
+ <View style={styles.userActions}>
335
+ {!isCurrentSession && (
336
+ <TouchableOpacity
337
+ style={[styles.removeButton, { borderColor: colors.destructive }]}
338
+ onPress={() => handleRemoteSessionLogout(deviceSession.sessionId, deviceSession.deviceName)}
339
+ >
340
+ <Text style={[styles.removeButtonText, { color: colors.destructive }]}>Logout</Text>
341
+ </TouchableOpacity>
342
+ )}
343
+ </View>
344
+ </View>
345
+ );
346
+ };
347
+
247
348
  return (
248
349
  <View style={[styles.container, { backgroundColor: colors.background }]}>
249
350
  <View style={styles.header}>
@@ -263,12 +364,64 @@ const AccountSwitcherScreen: React.FC<BaseScreenProps> = ({
263
364
 
264
365
  <View style={styles.usersContainer}>
265
366
  <Text style={[styles.sectionTitle, { color: colors.text }]}>
266
- Sessions ({sessions.length})
367
+ Local Sessions ({sessions.length})
267
368
  </Text>
268
369
 
269
370
  {sessions.map(renderSessionItem)}
270
371
  </View>
271
372
 
373
+ {/* Remote Device Management Section */}
374
+ <View style={styles.usersContainer}>
375
+ <View style={styles.sectionHeader}>
376
+ <Text style={[styles.sectionTitle, { color: colors.text }]}>
377
+ All Devices & Sessions
378
+ </Text>
379
+ <TouchableOpacity
380
+ style={[styles.toggleButton, { borderColor: colors.accent }]}
381
+ onPress={() => setShowRemoteDevices(!showRemoteDevices)}
382
+ >
383
+ <Text style={[styles.toggleButtonText, { color: colors.accent }]}>
384
+ {showRemoteDevices ? 'Hide' : 'Show'}
385
+ </Text>
386
+ </TouchableOpacity>
387
+ </View>
388
+
389
+ {showRemoteDevices && (
390
+ <>
391
+ {loadingDeviceSessions ? (
392
+ <View style={styles.loadingContainer}>
393
+ <ActivityIndicator color={colors.accent} size="small" />
394
+ <Text style={[styles.loadingText, { color: colors.secondaryText }]}>
395
+ Loading device sessions...
396
+ </Text>
397
+ </View>
398
+ ) : (
399
+ <>
400
+ {allDeviceSessions.length > 0 ? (
401
+ <>
402
+ {allDeviceSessions.map(renderDeviceSessionItem)}
403
+ {allDeviceSessions.filter(s => !s.isCurrent).length > 0 && (
404
+ <TouchableOpacity
405
+ style={[styles.actionButton, { borderColor: colors.destructive, marginTop: 12 }]}
406
+ onPress={handleLogoutAllDevices}
407
+ >
408
+ <Text style={[styles.actionButtonText, { color: colors.destructive }]}>
409
+ Logout All Other Devices
410
+ </Text>
411
+ </TouchableOpacity>
412
+ )}
413
+ </>
414
+ ) : (
415
+ <Text style={[styles.emptyText, { color: colors.secondaryText }]}>
416
+ No other device sessions found
417
+ </Text>
418
+ )}
419
+ </>
420
+ )}
421
+ </>
422
+ )}
423
+ </View>
424
+
272
425
  <View style={styles.actionsContainer}>
273
426
  <TouchableOpacity
274
427
  style={[styles.actionButton, { borderColor: colors.border }]}
@@ -437,6 +590,40 @@ const styles = StyleSheet.create({
437
590
  fontSize: 16,
438
591
  fontFamily: fontFamilies.phuduMedium,
439
592
  },
593
+ sectionHeader: {
594
+ flexDirection: 'row',
595
+ alignItems: 'center',
596
+ justifyContent: 'space-between',
597
+ marginBottom: 16,
598
+ },
599
+ toggleButton: {
600
+ paddingHorizontal: 12,
601
+ paddingVertical: 6,
602
+ borderRadius: 6,
603
+ borderWidth: 1,
604
+ },
605
+ toggleButtonText: {
606
+ fontSize: 14,
607
+ fontFamily: fontFamilies.phuduMedium,
608
+ },
609
+ loadingContainer: {
610
+ flexDirection: 'row',
611
+ alignItems: 'center',
612
+ justifyContent: 'center',
613
+ paddingVertical: 20,
614
+ gap: 8,
615
+ },
616
+ loadingText: {
617
+ fontSize: 14,
618
+ fontFamily: fontFamilies.phudu,
619
+ },
620
+ emptyText: {
621
+ fontSize: 14,
622
+ fontFamily: fontFamilies.phudu,
623
+ textAlign: 'center',
624
+ paddingVertical: 20,
625
+ fontStyle: 'italic',
626
+ },
440
627
  });
441
628
 
442
629
  export default AccountSwitcherScreen;