From 92f490e9d9ee9a34362e46713e808d41dfc6d612 Mon Sep 17 00:00:00 2001 From: hazre Date: Fri, 13 Feb 2026 01:46:24 +0100 Subject: [PATCH] feat: show connected/connecting call status --- src/app/features/lobby/RoomItem.tsx | 2 +- .../features/room-nav/RoomCallNavStatus.tsx | 43 +++++++++++++++---- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/app/features/lobby/RoomItem.tsx b/src/app/features/lobby/RoomItem.tsx index f5e17bda..7de59acd 100644 --- a/src/app/features/lobby/RoomItem.tsx +++ b/src/app/features/lobby/RoomItem.tsx @@ -30,7 +30,7 @@ import { LocalRoomSummaryLoader } from '../../components/RoomSummaryLoader'; import { UseStateProvider } from '../../components/UseStateProvider'; import { RoomTopicViewer } from '../../components/room-topic-viewer'; import { onEnterOrSpace, stopPropagation } from '../../utils/keyboard'; -import { Membership, RoomType } from '../../../types/matrix/room'; +import { Membership } from '../../../types/matrix/room'; import * as css from './RoomItem.css'; import * as styleCss from './style.css'; import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback'; diff --git a/src/app/features/room-nav/RoomCallNavStatus.tsx b/src/app/features/room-nav/RoomCallNavStatus.tsx index 2fb647ee..8c132c9d 100644 --- a/src/app/features/room-nav/RoomCallNavStatus.tsx +++ b/src/app/features/room-nav/RoomCallNavStatus.tsx @@ -1,17 +1,34 @@ -import { Box, Chip, Icon, IconButton, Icons, Line, Text, Tooltip, TooltipProvider } from 'folds'; +import { + Box, + Chip, + Icon, + IconButton, + Icons, + Line, + Spinner, + Text, + Tooltip, + TooltipProvider, + color, +} from 'folds'; import React from 'react'; -import { useMatrixClient } from '../../hooks/useMatrixClient'; import { useCallState } from '../../pages/client/call/CallProvider'; import { useRoomNavigate } from '../../hooks/useRoomNavigate'; import * as css from './RoomCallNavStatus.css'; export function CallNavStatus() { - const { activeCallRoomId, isAudioEnabled, isVideoEnabled, toggleAudio, toggleVideo, hangUp } = - useCallState(); - const mx = useMatrixClient(); + const { + activeCallRoomId, + isActiveCallReady, + isAudioEnabled, + isVideoEnabled, + toggleAudio, + toggleVideo, + hangUp, + } = useCallState(); const { navigateRoom } = useRoomNavigate(); const hasActiveCall = Boolean(activeCallRoomId); - + const isConnected = hasActiveCall && isActiveCallReady; const handleGoToCallRoom = () => { if (activeCallRoomId) { navigateRoom(activeCallRoomId); @@ -42,9 +59,17 @@ export function CallNavStatus() { ref={triggerRef} className={css.RoomButton} > - - - {mx.getRoom(activeCallRoomId ?? '')?.name ?? ''} + {isConnected ? ( + + ) : ( + + )} + + {isConnected ? 'Connected' : 'Connecting'} )}