From 2a30d18bd01beb0ccc9fc4f9644b038042ee144e Mon Sep 17 00:00:00 2001 From: anavoi Date: Wed, 27 Aug 2025 12:10:36 +0200 Subject: [PATCH] add presence badge in member list Potential performance issues: - In large rooms, we should only update the presence for the users shown in the scrollcontainer --- src/app/features/room/MembersDrawer.tsx | 29 +++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/app/features/room/MembersDrawer.tsx b/src/app/features/room/MembersDrawer.tsx index 46d2238..1a73c23 100644 --- a/src/app/features/room/MembersDrawer.tsx +++ b/src/app/features/room/MembersDrawer.tsx @@ -59,6 +59,8 @@ import { useSpaceOptionally } from '../../hooks/useSpace'; import { ContainerColor } from '../../styles/ContainerColor.css'; import { useFlattenPowerTagMembers, useGetMemberPowerTag } from '../../hooks/useMemberPowerTag'; import { useRoomCreators } from '../../hooks/useRoomCreators'; +import { useUserPresence } from '../../hooks/useUserPresence'; +import { AvatarPresence, PresenceBadge } from '../../components/presence'; type MemberDrawerHeaderProps = { room: Room; @@ -125,6 +127,7 @@ function MemberItem({ const avatarUrl = avatarMxcUrl ? mx.mxcUrlToHttp(avatarMxcUrl, 100, 100, 'crop', undefined, false, useAuthentication) : undefined; + const presence = useUserPresence(member.userId) return ( - } - /> - + + }> + + } + /> + + } after={ typing && ( @@ -346,9 +354,8 @@ export function MembersDrawer({ room, members }: MembersDrawerProps) { }} after={} > - {`${result.items.length || 'No'} ${ - result.items.length === 1 ? 'Result' : 'Results' - }`} + {`${result.items.length || 'No'} ${result.items.length === 1 ? 'Result' : 'Results' + }`} ) }