forked from github/cinny
fix: clean up call nav/call view console warnings
This commit is contained in:
@@ -209,9 +209,13 @@ export function CallView({ room }: { room: Room }) {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<CallViewUserGrid>
|
<CallViewUserGrid>
|
||||||
{callMembers
|
{callMembers.slice(0, 6).map((callMember) => (
|
||||||
.map((callMember) => <CallViewUser room={room} callMembership={callMember} />)
|
<CallViewUser
|
||||||
.slice(0, 6)}
|
key={callMember.membershipID}
|
||||||
|
room={room}
|
||||||
|
callMembership={callMember}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
</CallViewUserGrid>
|
</CallViewUserGrid>
|
||||||
|
|
||||||
<Box
|
<Box
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import {
|
|||||||
} from 'folds';
|
} from 'folds';
|
||||||
import { useFocusWithin, useHover } from 'react-aria';
|
import { useFocusWithin, useHover } from 'react-aria';
|
||||||
import FocusTrap from 'focus-trap-react';
|
import FocusTrap from 'focus-trap-react';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
import { NavButton, NavItem, NavItemContent, NavItemOptions, NavLink } from '../../components/nav';
|
import { NavButton, NavItem, NavItemContent, NavItemOptions } from '../../components/nav';
|
||||||
import { UnreadBadge, UnreadBadgeCenter } from '../../components/unread-badge';
|
import { UnreadBadge, UnreadBadgeCenter } from '../../components/unread-badge';
|
||||||
import { RoomAvatar, RoomIcon } from '../../components/room-avatar';
|
import { RoomAvatar, RoomIcon } from '../../components/room-avatar';
|
||||||
import { getDirectRoomAvatarUrl, getRoomAvatarUrl } from '../../utils/room';
|
import { getDirectRoomAvatarUrl, getRoomAvatarUrl } from '../../utils/room';
|
||||||
@@ -256,6 +256,7 @@ export function RoomNavItem({
|
|||||||
const isActiveCall = isActiveCallReady && activeCallRoomId === room.roomId;
|
const isActiveCall = isActiveCallReady && activeCallRoomId === room.roomId;
|
||||||
const callMemberships = useCallMembers(mx, room.roomId);
|
const callMemberships = useCallMembers(mx, room.roomId);
|
||||||
const { navigateRoom } = useRoomNavigate();
|
const { navigateRoom } = useRoomNavigate();
|
||||||
|
const navigate = useNavigate();
|
||||||
const { roomIdOrAlias: viewedRoomId } = useParams();
|
const { roomIdOrAlias: viewedRoomId } = useParams();
|
||||||
const screenSize = useScreenSizeContext();
|
const screenSize = useScreenSizeContext();
|
||||||
const isMobile = screenSize === ScreenSize.Mobile;
|
const isMobile = screenSize === ScreenSize.Mobile;
|
||||||
@@ -275,13 +276,6 @@ export function RoomNavItem({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleNavItemClick: MouseEventHandler<HTMLElement> = (evt) => {
|
const handleNavItemClick: MouseEventHandler<HTMLElement> = (evt) => {
|
||||||
const target = evt.target as HTMLElement;
|
|
||||||
const chatButton = (evt.currentTarget as HTMLElement).querySelector(
|
|
||||||
'[data-testid="chat-button"]'
|
|
||||||
);
|
|
||||||
if (chatButton && chatButton.contains(target)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (room.isCallRoom()) {
|
if (room.isCallRoom()) {
|
||||||
if (!isMobile) {
|
if (!isMobile) {
|
||||||
if (!isActiveCall) {
|
if (!isActiveCall) {
|
||||||
@@ -308,6 +302,7 @@ export function RoomNavItem({
|
|||||||
evt.stopPropagation();
|
evt.stopPropagation();
|
||||||
if (!isChatOpen) toggleChat();
|
if (!isChatOpen) toggleChat();
|
||||||
setViewedCallRoomId(room.roomId);
|
setViewedCallRoomId(room.roomId);
|
||||||
|
navigate(linkPath);
|
||||||
};
|
};
|
||||||
|
|
||||||
const optionsVisible = hover || !!menuAnchor;
|
const optionsVisible = hover || !!menuAnchor;
|
||||||
@@ -398,6 +393,7 @@ export function RoomNavItem({
|
|||||||
)}
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
</NavItemContent>
|
</NavItemContent>
|
||||||
|
</NavButton>
|
||||||
{optionsVisible && (
|
{optionsVisible && (
|
||||||
<NavItemOptions>
|
<NavItemOptions>
|
||||||
<PopOut
|
<PopOut
|
||||||
@@ -450,9 +446,7 @@ export function RoomNavItem({
|
|||||||
size="300"
|
size="300"
|
||||||
radii="300"
|
radii="300"
|
||||||
>
|
>
|
||||||
<NavLink to={linkPath}>
|
|
||||||
<Icon size="50" src={Icons.Message} />
|
<Icon size="50" src={Icons.Message} />
|
||||||
</NavLink>
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</TooltipProvider>
|
</TooltipProvider>
|
||||||
@@ -472,12 +466,15 @@ export function RoomNavItem({
|
|||||||
</PopOut>
|
</PopOut>
|
||||||
</NavItemOptions>
|
</NavItemOptions>
|
||||||
)}
|
)}
|
||||||
</NavButton>
|
|
||||||
</NavItem>
|
</NavItem>
|
||||||
{room.isCallRoom() && (
|
{room.isCallRoom() && (
|
||||||
<Box direction="Column" style={{ paddingLeft: config.space.S200 }}>
|
<Box direction="Column" style={{ paddingLeft: config.space.S200 }}>
|
||||||
{callMemberships.map((callMembership) => (
|
{callMemberships.map((callMembership) => (
|
||||||
<RoomNavUser room={room} callMembership={callMembership} />
|
<RoomNavUser
|
||||||
|
key={callMembership.membershipID}
|
||||||
|
room={room}
|
||||||
|
callMembership={callMembership}
|
||||||
|
/>
|
||||||
))}
|
))}
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ export function RoomNavUser({ room, callMembership }: RoomNavUserProps) {
|
|||||||
return (
|
return (
|
||||||
<NavItem variant="Background" radii="400">
|
<NavItem variant="Background" radii="400">
|
||||||
<NavButton onClick={handleNavUserClick} aria-label={ariaLabel}>
|
<NavButton onClick={handleNavUserClick} aria-label={ariaLabel}>
|
||||||
<NavItemContent>
|
<NavItemContent as="div">
|
||||||
<Box direction="Column" grow="Yes" gap="200" justifyContent="Stretch">
|
<Box direction="Column" grow="Yes" gap="200" justifyContent="Stretch">
|
||||||
<Box as="span" alignItems="Center" gap="200">
|
<Box alignItems="Center" gap="200">
|
||||||
<Avatar size="200">
|
<Avatar size="200">
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
userId={userId}
|
userId={userId}
|
||||||
@@ -51,7 +51,7 @@ export function RoomNavUser({ room, callMembership }: RoomNavUserProps) {
|
|||||||
renderFallback={() => <Icon size="50" src={Icons.User} filled />}
|
renderFallback={() => <Icon size="50" src={Icons.User} filled />}
|
||||||
/>
|
/>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
<Text size="B400" priority="300" truncate>
|
<Text as="span" size="B400" priority="300" truncate>
|
||||||
{getName}
|
{getName}
|
||||||
</Text>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -257,9 +257,11 @@ export function CallProvider({ children }: CallProviderProps) {
|
|||||||
setIsActiveCallReady(true);
|
setIsActiveCallReady(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
sendWidgetAction(WIDGET_MEDIA_STATE_UPDATE_ACTION, {
|
void sendWidgetAction(WIDGET_MEDIA_STATE_UPDATE_ACTION, {
|
||||||
audio_enabled: isAudioEnabled,
|
audio_enabled: isAudioEnabled,
|
||||||
video_enabled: isVideoEnabled,
|
video_enabled: isVideoEnabled,
|
||||||
|
}).catch(() => {
|
||||||
|
// Widget transport may reject while call/session setup is still in progress.
|
||||||
});
|
});
|
||||||
|
|
||||||
activeClientWidgetApi.on(`action:${WIDGET_HANGUP_ACTION}`, handleHangup);
|
activeClientWidgetApi.on(`action:${WIDGET_HANGUP_ACTION}`, handleHangup);
|
||||||
|
|||||||
Reference in New Issue
Block a user