function CrossSigninAlert() {
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;
const unverified = [];
const verified = [];
+ const noEncryption = [];
deviceList.sort((a, b) => b.last_seen_ts - a.last_seen_ts).forEach((device) => {
- if (isCrossVerified(device.device_id)) verified.push(device);
- else unverified.push(device);
+ const isVerified = isCrossVerified(device.device_id);
+ if (isVerified === true) {
+ verified.push(device);
+ } else if (isVerified === false) {
+ unverified.push(device);
+ } else {
+ noEncryption.push(device);
+ }
});
return (
<div className="device-manage">
{
unverified.length > 0
? 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>
+ {noEncryption.length > 0 && (
+ <div>
+ <MenuHeader>Sessions without encryption support</MenuHeader>
+ {noEncryption.map((device) => renderDevice(device, true))}
+ </div>
+ )}
<div>
<MenuHeader>Verified sessions</MenuHeader>
{
const deviceTrust = crossSignInfo.checkDeviceTrust(crossSignInfo, deviceInfo, false, true);
return deviceTrust.isCrossSigningVerified();
} catch {
- return false;
+ // device does not support encryption
+ return null;
}
}