From 1e44557406db2aad265453a5de2fc10b4f09ce56 Mon Sep 17 00:00:00 2001 From: Gigiaj Date: Tue, 20 May 2025 11:26:54 -0500 Subject: [PATCH] Add ideal call room join behavior where text rooms to call room simply joins, but doesn't swap current view --- src/app/features/room-nav/RoomNavItem.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx index 4ad99fe5..60fb1880 100644 --- a/src/app/features/room-nav/RoomNavItem.tsx +++ b/src/app/features/room-nav/RoomNavItem.tsx @@ -21,6 +21,7 @@ import { } from 'folds'; import { useFocusWithin, useHover } from 'react-aria'; import FocusTrap from 'focus-trap-react'; +import { useParams } from 'react-router-dom'; import { NavItem, NavItemContent, NavItemOptions, NavLink } from '../../components/nav'; import { UnreadBadge, UnreadBadgeCenter } from '../../components/unread-badge'; import { RoomAvatar, RoomIcon } from '../../components/room-avatar'; @@ -53,7 +54,6 @@ import { import { RoomNotificationModeSwitcher } from '../../components/RoomNotificationSwitcher'; import { useCallState } from '../../pages/client/CallProvider'; import { useRoomNavigate } from '../../hooks/useRoomNavigate'; -import { logger } from 'matrix-js-sdk/lib/logger'; type RoomNavItemMenuProps = { room: Room; @@ -235,6 +235,7 @@ export function RoomNavItem({ (receipt) => receipt.userId !== mx.getUserId() ); const { navigateRoom } = useRoomNavigate(); + const { roomIdOrAlias: viewedRoomId } = useParams(); const handleContextMenu: MouseEventHandler = (evt) => { evt.preventDefault(); @@ -261,10 +262,11 @@ export function RoomNavItem({ if (room.isCallRoom() && activeCallRoomId !== room.roomId) { hangUp(); - logger.error(room?.normalizedName); setActiveCallRoomId(room.roomId); setViewedCallRoomId(room.roomId); - navigateRoom(room.roomId); + if (mx.getRoom(viewedRoomId)?.isCallRoom()) { + navigateRoom(room.roomId); + } } else { navigateRoom(room.roomId); }