@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.
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +216 -32
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +217 -33
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ui/screens/AccountSwitcherScreen.tsx +231 -44
|
@@ -26,9 +26,11 @@ const AccountSwitcherScreen = ({
|
|
|
26
26
|
logoutAll,
|
|
27
27
|
isLoading
|
|
28
28
|
} = (0, _OxyContext.useOxy)();
|
|
29
|
-
const [
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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 [
|
|
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
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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;
|
|
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.
|
|
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
|
|
21
|
-
|
|
22
|
-
|
|
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 [
|
|
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
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
103
|
-
|
|
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;
|