Introduce Membership type

This commit is contained in:
Stanislav Demydiuk 2024-03-11 17:16:53 +00:00 committed by Andy Balaam
parent 3c6fd58628
commit da99bad7b9
115 changed files with 582 additions and 526 deletions

View file

@ -140,7 +140,7 @@ export const AddExistingToSpace: React.FC<IAddExistingToSpaceProps> = ({
const msc3946ProcessDynamicPredecessor = useSettingValue<boolean>("feature_dynamic_room_predecessors");
const visibleRooms = useMemo(
() =>
cli?.getVisibleRooms(msc3946ProcessDynamicPredecessor).filter((r) => r.getMyMembership() === "join") ?? [],
cli?.getVisibleRooms(msc3946ProcessDynamicPredecessor).filter((r) => r.getMyMembership() === Membership.Join) ?? [],
[cli, msc3946ProcessDynamicPredecessor],
);

View file

@ -267,7 +267,7 @@ const ForwardDialog: React.FC<IProps> = ({ matrixClient: cli, event, permalinkCr
sortRooms(
cli
.getVisibleRooms(msc3946DynamicRoomPredecessors)
.filter((room) => room.getMyMembership() === "join" && !room.isSpaceRoom()),
.filter((room) => room.getMyMembership() === Membership.Join && !room.isSpaceRoom()),
),
[cli, msc3946DynamicRoomPredecessors],
);

View file

@ -372,10 +372,10 @@ export default class InviteDialog extends React.PureComponent<Props, IInviteDial
const room = MatrixClientPeg.safeGet().getRoom(props.roomId);
const isFederated = room?.currentState.getStateEvents(EventType.RoomCreate, "")?.getContent()["m.federate"];
if (!room) throw new Error("Room ID given to InviteDialog does not look like a room");
room.getMembersWithMembership("invite").forEach((m) => excludedIds.add(m.userId));
room.getMembersWithMembership("join").forEach((m) => excludedIds.add(m.userId));
room.getMembersWithMembership(Membership.Invite).forEach((m) => excludedIds.add(m.userId));
room.getMembersWithMembership(Membership.Join).forEach((m) => excludedIds.add(m.userId));
// add banned users, so we don't try to invite them
room.getMembersWithMembership("ban").forEach((m) => excludedIds.add(m.userId));
room.getMembersWithMembership(Membership.Ban).forEach((m) => excludedIds.add(m.userId));
if (isFederated === false) {
// exclude users from external servers
const homeserver = props.roomId.split(":")[1];

View file

@ -102,7 +102,7 @@ const ManageRestrictedJoinRuleDialog: React.FC<IProps> = ({ room, selected = [],
if (!room) {
return { roomId, name: roomId } as Room;
}
if (room.getMyMembership() !== "join" || !room.isSpaceRoom()) {
if (room.getMyMembership() !== Membership.Join || !room.isSpaceRoom()) {
return room;
}
}),

View file

@ -27,7 +27,7 @@ const ServersInRoom: React.FC<IDevtoolsProps> = ({ onBack }) => {
const servers = useMemo<Record<string, number>>(() => {
const servers: Record<string, number> = {};
context.room.currentState.getStateEvents(EventType.RoomMember).forEach((ev) => {
if (ev.getContent().membership !== "join") return; // only count joined users
if (ev.getContent().membership !== Membership.Join) return; // only count joined users
const server = ev.getSender()!.split(":")[1];
servers[server] = (servers[server] ?? 0) + 1;
});

View file

@ -244,7 +244,7 @@ const findVisibleRooms = (cli: MatrixClient, msc3946ProcessDynamicPredecessor: b
if (isLocalRoom(room)) return false;
// TODO we may want to put invites in their own list
return room.getMyMembership() === "join" || room.getMyMembership() == "invite";
return room.getMyMembership() === Membership.Join || room.getMyMembership() == Membership.Invite;
});
};
@ -675,7 +675,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
// world readable, a modal will appear asking you to register first. If
// it is readable, the preview appears as normal.
const showViewButton =
clientRoom?.getMyMembership() === "join" ||
clientRoom?.getMyMembership() === Membership.Join ||
(result.publicRoom.world_readable && !canAskToJoin(joinRule)) ||
cli.isGuest();