as,
config,
} from 'folds';
-import { Room, RoomMember } from 'matrix-js-sdk';
+import { Room } from 'matrix-js-sdk';
import { useRoomEventReaders } from '../../hooks/useRoomEventReaders';
import { getMemberDisplayName } from '../../utils/room';
import { getMxIdLocalPart } from '../../utils/matrix';
({ className, room, eventId, requestClose, ...props }, ref) => {
const mx = useMatrixClient();
const latestEventReaders = useRoomEventReaders(room, eventId);
- const followingMembers = latestEventReaders
- .map((readerId) => room.getMember(readerId))
- .filter((member) => member) as RoomMember[];
- const getName = (member: RoomMember) =>
- getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId;
+ const getName = (userId: string) =>
+ getMemberDisplayName(room, userId) ?? getMxIdLocalPart(userId) ?? userId;
return (
<Box
<Box grow="Yes">
<Scroll visibility="Hover" hideTrack size="300">
<Box className={css.Content} direction="Column">
- {followingMembers.map((member) => {
- const name = getName(member);
- const avatarUrl = member.getAvatarUrl(
- mx.baseUrl,
- 100,
- 100,
- 'crop',
- undefined,
- false
- );
+ {latestEventReaders.map((readerId) => {
+ const name = getName(readerId);
+ const avatarUrl = room
+ .getMember(readerId)
+ ?.getAvatarUrl(mx.baseUrl, 100, 100, 'crop', undefined, false);
return (
<MenuItem
- key={member.userId}
+ key={readerId}
style={{ padding: `0 ${config.space.S200}` }}
radii="400"
onClick={() => {
requestClose();
- openProfileViewer(member.userId, room.roomId);
+ openProfileViewer(readerId, room.roomId);
}}
before={
<Avatar size="200">
) : (
<AvatarFallback
style={{
- background: colorMXID(member.userId),
+ background: colorMXID(readerId),
color: 'white',
}}
>
as,
config,
} from 'folds';
-import { Room, RoomMember } from 'matrix-js-sdk';
+import { Room } from 'matrix-js-sdk';
import classNames from 'classnames';
import FocusTrap from 'focus-trap-react';
const [open, setOpen] = useState(false);
const latestEvent = useRoomLatestRenderedEvent(room);
const latestEventReaders = useRoomEventReaders(room, latestEvent?.getId());
- const followingMembers = latestEventReaders
- .map((readerId) => room.getMember(readerId))
- .filter((member) => member && member.userId !== mx.getUserId()) as RoomMember[];
-
- const names = followingMembers.map(
- (member) => getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId)
- );
+ const names = latestEventReaders
+ .filter((readerId) => readerId !== mx.getUserId())
+ .map(
+ (readerId) => getMemberDisplayName(room, readerId) ?? getMxIdLocalPart(readerId) ?? readerId
+ );
const eventId = latestEvent?.getId();