import { getMemberDisplayName, getMemberSearchStr } from '../../../utils/room';
import { UserAvatar } from '../../user-avatar';
import { useMediaAuthentication } from '../../../hooks/useMediaAuthentication';
+import { Membership } from '../../../../types/matrix/room';
type MentionAutoCompleteHandler = (userId: string, name: string) => void;
requestClose: () => void;
};
+const withAllowedMembership = (member: RoomMember): boolean =>
+ member.membership === Membership.Join ||
+ member.membership === Membership.Invite ||
+ member.membership === Membership.Knock;
+
const SEARCH_OPTIONS: UseAsyncSearchOptions = {
limit: 20,
matchOptions: {
const members = useRoomMembers(mx, roomId);
const [result, search, resetSearch] = useAsyncSearch(members, getRoomMemberStr, SEARCH_OPTIONS);
- const autoCompleteMembers = result ? result.items : members.slice(0, 20);
+ const autoCompleteMembers = (result ? result.items : members.slice(0, 20)).filter(
+ withAllowedMembership
+ );
useEffect(() => {
if (query.text) search(query.text);