Show devices without encryption support separately from unverified session (#499)
* Show devices without encryption support separately * Fix typo * Don't show sessions without encryption support in red
This commit is contained in:
parent
b7c5902f67
commit
3da9b70632
3 changed files with 19 additions and 5 deletions
|
@ -92,7 +92,7 @@ function ProfileAvatarMenu() {
|
||||||
|
|
||||||
function CrossSigninAlert() {
|
function CrossSigninAlert() {
|
||||||
const deviceList = useDeviceList();
|
const deviceList = useDeviceList();
|
||||||
const unverified = deviceList?.filter((device) => !isCrossVerified(device.device_id));
|
const unverified = deviceList?.filter((device) => isCrossVerified(device.device_id) === false);
|
||||||
|
|
||||||
if (!unverified?.length) return null;
|
if (!unverified?.length) return null;
|
||||||
|
|
||||||
|
|
|
@ -124,9 +124,16 @@ function DeviceManage() {
|
||||||
|
|
||||||
const unverified = [];
|
const unverified = [];
|
||||||
const verified = [];
|
const verified = [];
|
||||||
|
const noEncryption = [];
|
||||||
deviceList.sort((a, b) => b.last_seen_ts - a.last_seen_ts).forEach((device) => {
|
deviceList.sort((a, b) => b.last_seen_ts - a.last_seen_ts).forEach((device) => {
|
||||||
if (isCrossVerified(device.device_id)) verified.push(device);
|
const isVerified = isCrossVerified(device.device_id);
|
||||||
else unverified.push(device);
|
if (isVerified === true) {
|
||||||
|
verified.push(device);
|
||||||
|
} else if (isVerified === false) {
|
||||||
|
unverified.push(device);
|
||||||
|
} else {
|
||||||
|
noEncryption.push(device);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return (
|
return (
|
||||||
<div className="device-manage">
|
<div className="device-manage">
|
||||||
|
@ -145,9 +152,15 @@ function DeviceManage() {
|
||||||
{
|
{
|
||||||
unverified.length > 0
|
unverified.length > 0
|
||||||
? unverified.map((device) => renderDevice(device, false))
|
? unverified.map((device) => renderDevice(device, false))
|
||||||
: <Text className="device-manage__info">No unverified session</Text>
|
: <Text className="device-manage__info">No unverified sessions</Text>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
{noEncryption.length > 0 && (
|
||||||
|
<div>
|
||||||
|
<MenuHeader>Sessions without encryption support</MenuHeader>
|
||||||
|
{noEncryption.map((device) => renderDevice(device, true))}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
<div>
|
<div>
|
||||||
<MenuHeader>Verified sessions</MenuHeader>
|
<MenuHeader>Verified sessions</MenuHeader>
|
||||||
{
|
{
|
||||||
|
|
|
@ -171,7 +171,8 @@ export function isCrossVerified(deviceId) {
|
||||||
const deviceTrust = crossSignInfo.checkDeviceTrust(crossSignInfo, deviceInfo, false, true);
|
const deviceTrust = crossSignInfo.checkDeviceTrust(crossSignInfo, deviceInfo, false, true);
|
||||||
return deviceTrust.isCrossSigningVerified();
|
return deviceTrust.isCrossSigningVerified();
|
||||||
} catch {
|
} catch {
|
||||||
return false;
|
// device does not support encryption
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue