From deea80864ae4ce3930ee79c63a3c771deba1eb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Rame=CC=81?= Date: Wed, 8 Apr 2026 15:47:09 +0200 Subject: [PATCH] wip entry --- .../WaitingParticipantNotification.tsx | 125 +++++++++++++++--- 1 file changed, 107 insertions(+), 18 deletions(-) diff --git a/src/frontend/src/features/notifications/components/WaitingParticipantNotification.tsx b/src/frontend/src/features/notifications/components/WaitingParticipantNotification.tsx index 9fa0d06a..774c96d6 100644 --- a/src/frontend/src/features/notifications/components/WaitingParticipantNotification.tsx +++ b/src/frontend/src/features/notifications/components/WaitingParticipantNotification.tsx @@ -12,19 +12,105 @@ import { useWaitingParticipants } from '@/features/rooms/hooks/useWaitingPartici import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel' import { useNotificationSound } from '../hooks/useSoundNotification' import { NotificationType } from '@/features/notifications' -import { EncryptionBadge } from '@/features/encryption' -import { useParticipantTrustLevel } from '@/features/encryption/useParticipantTrustLevel' +import { EncryptionBadge, EncryptionIdentityDialog } from '@/features/encryption' +import { useParticipantTrustLevel, formatFingerprint } from '@/features/encryption/useParticipantTrustLevel' import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData' import { isEncryptedRoom } from '@/features/rooms/api/ApiRoom' -const WaitingBadge = ({ participant }: { participant: WaitingParticipant }) => { +const WaitingParticipantIdentity = ({ participant }: { participant: WaitingParticipant }) => { + const { t: tBadge } = useTranslation('rooms', { keyPrefix: 'encryption.badge' }) const roomData = useRoomData() + const [isIdentityOpen, setIsIdentityOpen] = useState(false) const attrs = { is_authenticated: participant.is_authenticated ? 'true' : 'false', suite_user_id: participant.suite_user_id || '', } - const { trustLevel } = useParticipantTrustLevel(attrs, roomData?.encryption_mode) - return + const { trustLevel, fingerprintStatus, fingerprint } = useParticipantTrustLevel(attrs, roomData?.encryption_mode) + const badgeTooltip = tBadge(trustLevel) + + return ( + <> + + + {fingerprint && ( + + {formatFingerprint(fingerprint)} + + )} + + {participant.is_authenticated && participant.email + ? participant.email + : tBadge('anonymous')} + + + + + ) } export const NOTIFICATION_DISPLAY_DURATION = 10000 @@ -123,19 +209,22 @@ export const WaitingParticipantNotification = () => { context="list" notification /> - {encrypted && } - - {waitingParticipants[0].username} - + {encrypted ? ( + + ) : ( + + {waitingParticipants[0].username} + + )}