diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx index e31872ed..6bfaac13 100644 --- a/src/app/features/room-nav/RoomNavItem.tsx +++ b/src/app/features/room-nav/RoomNavItem.tsx @@ -52,6 +52,7 @@ import { } from '../../hooks/useRoomsNotificationPreferences'; import { RoomNotificationModeSwitcher } from '../../components/RoomNotificationSwitcher'; import { useCallState } from '../../pages/client/CallProvider'; +import { useRoomNavigate } from '../../hooks/useRoomNavigate'; type RoomNavItemMenuProps = { room: Room; @@ -221,10 +222,11 @@ export function RoomNavItem({ const { focusWithinProps } = useFocusWithin({ onFocusWithinChange: setHover }); const [menuAnchor, setMenuAnchor] = useState(); const unread = useRoomUnread(room.roomId, roomToUnreadAtom); - const { activeCallRoomId, isChatOpen, toggleChat, hangUp } = useCallState(); + const { activeCallRoomId, setActiveCallRoomId, isChatOpen, toggleChat, hangUp } = useCallState(); const typingMember = useRoomTypingMember(room.roomId).filter( (receipt) => receipt.userId !== mx.getUserId() ); + const { navigateRoom } = useRoomNavigate(); const handleContextMenu: MouseEventHandler = (evt) => { evt.preventDefault(); @@ -251,6 +253,9 @@ export function RoomNavItem({ if (room.isCallRoom() && activeCallRoomId !== room.roomId) { hangUp(); + setActiveCallRoomId(room.roomId); + } else { + navigateRoom(room.roomId); } }; @@ -272,57 +277,54 @@ export function RoomNavItem({ {...hoverProps} {...focusWithinProps} > - - {' '} - - - - {showAvatar ? ( - ( - - {nameInitials(room.name)} - - )} - /> - ) : ( - - )} - - - - {room.name} - - - {!optionsVisible && !unread && !selected && typingMember.length > 0 && ( - - - - )} - {!optionsVisible && unread && ( - - 0} count={unread.total} /> - - )} - {!optionsVisible && notificationMode !== RoomNotificationMode.Unset && ( - + + + + {showAvatar ? ( + ( + + {nameInitials(room.name)} + + )} + /> + ) : ( + )} + + + + {room.name} + - - + {!optionsVisible && !unread && !selected && typingMember.length > 0 && ( + + + + )} + {!optionsVisible && unread && ( + + 0} count={unread.total} /> + + )} + {!optionsVisible && notificationMode !== RoomNotificationMode.Unset && ( + + )} + + {optionsVisible && (