import React, { useState } from 'react';
import { Badge, color, Icon, Icons, Text } from 'folds';
import {
SidebarAvatar,
SidebarItem,
SidebarItemBadge,
SidebarItemTooltip,
} from '../../../components/sidebar';
import { useDeviceIds, useDeviceList, useSplitCurrentDevice } from '../../../hooks/useDeviceList';
import { useMatrixClient } from '../../../hooks/useMatrixClient';
import * as css from './UnverifiedTab.css';
import {
useDeviceVerificationStatus,
useUnverifiedDeviceCount,
VerificationStatus,
} from '../../../hooks/useDeviceVerificationStatus';
import { useCrossSigningActive } from '../../../hooks/useCrossSigning';
import { Modal500 } from '../../../components/Modal500';
import { Settings, SettingsPages } from '../../../features/settings';
function UnverifiedIndicator() {
const mx = useMatrixClient();
const crypto = mx.getCrypto();
const [devices] = useDeviceList();
const [currentDevice, otherDevices] = useSplitCurrentDevice(devices);
const verificationStatus = useDeviceVerificationStatus(
crypto,
mx.getSafeUserId(),
currentDevice?.device_id
);
const unverified = verificationStatus === VerificationStatus.Unverified;
const otherDevicesId = useDeviceIds(otherDevices);
const unverifiedDeviceCount = useUnverifiedDeviceCount(
crypto,
mx.getSafeUserId(),
otherDevicesId
);
const [settings, setSettings] = useState(false);
const closeSettings = () => setSettings(false);
const hasUnverified =
unverified || (unverifiedDeviceCount !== undefined && unverifiedDeviceCount > 0);
return (
<>
{hasUnverified && (
{(triggerRef) => (
setSettings(true)}
>
)}
{!unverified && unverifiedDeviceCount && unverifiedDeviceCount > 0 && (
{unverifiedDeviceCount}
)}
)}
{settings && (
)}
>
);
}
export function UnverifiedTab() {
const crossSigningActive = useCrossSigningActive();
if (!crossSigningActive) return null;
return ;
}