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

@ -65,10 +65,13 @@ export function splitRoomsByMembership(rooms: Room[]): MembershipSplit {
return split;
}
export function getEffectiveMembership(membership: string): EffectiveMembership {
if (membership === "invite") {
export function getEffectiveMembership(membership: Membership): EffectiveMembership {
if (membership === Membership.Invite) {
return EffectiveMembership.Invite;
} else if (membership === "join" || (SettingsStore.getValue("feature_ask_to_join") && membership === "knock")) {
} else if (
membership === Membership.Join ||
(SettingsStore.getValue("feature_ask_to_join") && membership === Membership.Knock)
) {
return EffectiveMembership.Join;
} else {
// Probably a leave, kick, or ban
@ -81,7 +84,7 @@ export function isKnockDenied(room: Room): boolean | undefined {
const member = memberId ? room.getMember(memberId) : null;
const previousMembership = member?.events.member?.getPrevContent().membership;
return member?.isKicked() && previousMembership === "knock";
return member?.isKicked() && previousMembership === Membership.Knock;
}
export function getEffectiveMembershipTag(room: Room, membership?: string): EffectiveMembership {
@ -90,7 +93,7 @@ export function getEffectiveMembershipTag(room: Room, membership?: string): Effe
: getEffectiveMembership(membership ?? room.getMyMembership());
}
export function isJoinedOrNearlyJoined(membership: string): boolean {
export function isJoinedOrNearlyJoined(membership: Membership): boolean {
const effective = getEffectiveMembership(membership);
return effective === EffectiveMembership.Join || effective === EffectiveMembership.Invite;
}