import { useOrphanSpaces } from '../../state/hooks/roomList';
import { roomToParentsAtom } from '../../state/room/roomToParents';
import { AccountDataEvent } from '../../../types/matrix/accountData';
+import { useRoomMembers } from '../../hooks/useRoomMembers';
export function Lobby() {
const navigate = useNavigate();
const space = useSpace();
const spacePowerLevels = usePowerLevels(space);
const lex = useMemo(() => new ASCIILexicalTable(' '.charCodeAt(0), '~'.charCodeAt(0), 6), []);
+ const members = useRoomMembers(mx, space.roomId);
const scrollRef = useRef<HTMLDivElement>(null);
const heroSectionRef = useRef<HTMLDivElement>(null);
{screenSize === ScreenSize.Desktop && isDrawer && (
<>
<Line variant="Background" direction="Vertical" size="300" />
- <MembersDrawer room={space} />
+ <MembersDrawer room={space} members={members} />
</>
)}
</Box>
import { openProfileViewer } from '../../../client/action/navigation';
import * as css from './MembersDrawer.css';
-import { useRoomMembers } from '../../hooks/useRoomMembers';
import { useMatrixClient } from '../../hooks/useMatrixClient';
import { Membership } from '../../../types/matrix/room';
import { UseStateProvider } from '../../components/UseStateProvider';
type MembersDrawerProps = {
room: Room;
+ members: RoomMember[];
};
-export function MembersDrawer({ room }: MembersDrawerProps) {
+export function MembersDrawer({ room, members }: MembersDrawerProps) {
const mx = useMatrixClient();
const scrollRef = useRef<HTMLDivElement>(null);
const searchInputRef = useRef<HTMLInputElement>(null);
const scrollTopAnchorRef = useRef<HTMLDivElement>(null);
- const members = useRoomMembers(mx, room.roomId);
const getPowerLevelTag = usePowerLevelTags();
const fetchingMembers = members.length < room.getJoinedMemberCount();
const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer');
import { useKeyDown } from '../../hooks/useKeyDown';
import { markAsRead } from '../../../client/action/notifications';
import { useMatrixClient } from '../../hooks/useMatrixClient';
+import { useRoomMembers } from '../../hooks/useRoomMembers';
export function Room() {
const { eventId } = useParams();
const [isDrawer] = useSetting(settingsAtom, 'isPeopleDrawer');
const screenSize = useScreenSizeContext();
const powerLevels = usePowerLevels(room);
+ const members = useRoomMembers(mx, room.roomId);
useKeyDown(
window,
markAsRead(mx, room.roomId);
}
},
- [room.roomId]
+ [mx, room.roomId]
)
);
{screenSize === ScreenSize.Desktop && isDrawer && (
<>
<Line variant="Background" direction="Vertical" size="300" />
- <MembersDrawer key={room.roomId} room={room} />
+ <MembersDrawer key={room.roomId} room={room} members={members} />
</>
)}
</Box>