Introduce Membership type
This commit is contained in:
parent
3c6fd58628
commit
da99bad7b9
115 changed files with 582 additions and 526 deletions
|
@ -1454,7 +1454,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
private async loadMembersIfJoined(room: Room): Promise<void> {
|
||||
// lazy load members if enabled
|
||||
if (this.context.client?.hasLazyLoadMembersEnabled()) {
|
||||
if (room && room.getMyMembership() === "join") {
|
||||
if (room && room.getMyMembership() === Membership.Join) {
|
||||
try {
|
||||
await room.loadMembersIfNeeded();
|
||||
if (!this.unmounted) {
|
||||
|
@ -1588,7 +1588,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
if (room && this.context.client) {
|
||||
const me = this.context.client.getSafeUserId();
|
||||
const canReact =
|
||||
room.getMyMembership() === "join" && room.currentState.maySendEvent(EventType.Reaction, me);
|
||||
room.getMyMembership() === Membership.Join && room.currentState.maySendEvent(EventType.Reaction, me);
|
||||
const canSendMessages = room.maySendMessage();
|
||||
const canSelfRedact = room.currentState.maySendEvent(EventType.RoomRedaction, me);
|
||||
|
||||
|
@ -1622,7 +1622,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
|
||||
private updateDMState(): void {
|
||||
const room = this.state.room;
|
||||
if (room?.getMyMembership() !== "join") {
|
||||
if (room.getMyMembership() != Membership.Join) {
|
||||
return;
|
||||
}
|
||||
const dmInviter = room.getDMInviter();
|
||||
|
@ -1662,7 +1662,8 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
action: Action.JoinRoom,
|
||||
roomId,
|
||||
opts: { inviteSignUrl: signUrl },
|
||||
metricsTrigger: this.state.room?.getMyMembership() === "invite" ? "Invite" : "RoomPreview",
|
||||
metricsTrigger:
|
||||
this.state.room?.getMyMembership() === Membership.Invite ? "Invite" : "RoomPreview",
|
||||
canAskToJoin: this.state.canAskToJoin,
|
||||
});
|
||||
}
|
||||
|
@ -2183,7 +2184,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
const myMembership = this.state.room.getMyMembership();
|
||||
if (
|
||||
isVideoRoom(this.state.room) &&
|
||||
!(SettingsStore.getValue("feature_video_rooms") && myMembership === "join")
|
||||
!(SettingsStore.getValue("feature_video_rooms") && myMembership === Membership.Join)
|
||||
) {
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
|
@ -2200,7 +2201,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
}
|
||||
|
||||
// SpaceRoomView handles invites itself
|
||||
if (myMembership === "invite" && !this.state.room.isSpaceRoom()) {
|
||||
if (myMembership === Membership.Invite && !this.state.room.isSpaceRoom()) {
|
||||
if (this.state.joining || this.state.rejecting) {
|
||||
return (
|
||||
<ErrorBoundary>
|
||||
|
@ -2247,16 +2248,16 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
}
|
||||
}
|
||||
|
||||
if (this.state.canAskToJoin && ["knock", "leave"].includes(myMembership)) {
|
||||
if (this.state.canAskToJoin && [Membership.Knock, Membership.Leave].includes(myMembership)) {
|
||||
return (
|
||||
<div className="mx_RoomView" data-room-header={roomHeaderType}>
|
||||
<ErrorBoundary>
|
||||
<RoomPreviewBar
|
||||
onJoinClick={this.onJoinButtonClicked}
|
||||
room={this.state.room}
|
||||
canAskToJoinAndMembershipIsLeave={myMembership === "leave"}
|
||||
canAskToJoinAndMembershipIsLeave={myMembership === Membership.Leave}
|
||||
promptAskToJoin={this.state.promptAskToJoin}
|
||||
knocked={myMembership === "knock"}
|
||||
knocked={myMembership === Membership.Knock}
|
||||
onSubmitAskToJoin={this.onSubmitAskToJoin}
|
||||
onCancelAskToJoin={this.onCancelAskToJoin}
|
||||
onForgetClick={this.onForgetClick}
|
||||
|
@ -2288,7 +2289,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
statusBar = (
|
||||
<RoomStatusBar
|
||||
room={this.state.room}
|
||||
isPeeking={myMembership !== "join"}
|
||||
isPeeking={myMembership !== Membership.Join}
|
||||
onInviteClick={this.onInviteClick}
|
||||
onVisible={this.onStatusBarVisible}
|
||||
onHidden={this.onStatusBarHidden}
|
||||
|
@ -2332,7 +2333,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
);
|
||||
} else if (showRoomUpgradeBar) {
|
||||
aux = <RoomUpgradeWarningBar room={this.state.room} />;
|
||||
} else if (myMembership !== "join") {
|
||||
} else if (myMembership !== Membership.Join) {
|
||||
// We do have a room object for this room, but we're not currently in it.
|
||||
// We may have a 3rd party invite to it.
|
||||
let inviterName: string | undefined;
|
||||
|
@ -2406,7 +2407,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
let messageComposer;
|
||||
const showComposer =
|
||||
// joined and not showing search results
|
||||
myMembership === "join" && !this.state.search;
|
||||
myMembership === Membership.Join && !this.state.search;
|
||||
if (showComposer) {
|
||||
messageComposer = (
|
||||
<MessageComposer
|
||||
|
@ -2603,7 +2604,8 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
|
||||
const myMember = this.state.room!.getMember(this.context.client!.getSafeUserId());
|
||||
const showForgetButton =
|
||||
!this.context.client.isGuest() && (["leave", "ban"].includes(myMembership) || myMember?.isKicked());
|
||||
!this.context.client.isGuest() &&
|
||||
([Membership.Leave, Membership.Ban].includes(myMembership) || myMember?.isKicked());
|
||||
|
||||
return (
|
||||
<RoomContext.Provider value={this.state}>
|
||||
|
@ -2640,7 +2642,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
|
|||
room={this.state.room}
|
||||
searchInfo={this.state.search}
|
||||
oobData={this.props.oobData}
|
||||
inRoom={myMembership === "join"}
|
||||
inRoom={myMembership === Membership.Join}
|
||||
onSearchClick={onSearchClick}
|
||||
onInviteClick={onInviteClick}
|
||||
onForgetClick={showForgetButton ? onForgetClick : null}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue