Remove message previews for state events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>pull/21833/head
parent
4de1645ac7
commit
eb0e9ecab4
|
@ -19,42 +19,19 @@ import { ActionPayload } from "../../dispatcher/payloads";
|
||||||
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
|
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
|
||||||
import defaultDispatcher from "../../dispatcher/dispatcher";
|
import defaultDispatcher from "../../dispatcher/dispatcher";
|
||||||
import { MessageEventPreview } from "./previews/MessageEventPreview";
|
import { MessageEventPreview } from "./previews/MessageEventPreview";
|
||||||
import { NameEventPreview } from "./previews/NameEventPreview";
|
|
||||||
import { TagID } from "./models";
|
import { TagID } from "./models";
|
||||||
import { isNullOrUndefined } from "matrix-js-sdk/src/utils";
|
import { isNullOrUndefined } from "matrix-js-sdk/src/utils";
|
||||||
import { TopicEventPreview } from "./previews/TopicEventPreview";
|
|
||||||
import { MembershipEventPreview } from "./previews/MembershipEventPreview";
|
|
||||||
import { HistoryVisibilityEventPreview } from "./previews/HistoryVisibilityEventPreview";
|
|
||||||
import { CallInviteEventPreview } from "./previews/CallInviteEventPreview";
|
import { CallInviteEventPreview } from "./previews/CallInviteEventPreview";
|
||||||
import { CallAnswerEventPreview } from "./previews/CallAnswerEventPreview";
|
import { CallAnswerEventPreview } from "./previews/CallAnswerEventPreview";
|
||||||
import { CallHangupEvent } from "./previews/CallHangupEvent";
|
import { CallHangupEvent } from "./previews/CallHangupEvent";
|
||||||
import { EncryptionEventPreview } from "./previews/EncryptionEventPreview";
|
|
||||||
import { ThirdPartyInviteEventPreview } from "./previews/ThirdPartyInviteEventPreview";
|
|
||||||
import { StickerEventPreview } from "./previews/StickerEventPreview";
|
import { StickerEventPreview } from "./previews/StickerEventPreview";
|
||||||
import { ReactionEventPreview } from "./previews/ReactionEventPreview";
|
import { ReactionEventPreview } from "./previews/ReactionEventPreview";
|
||||||
import { CreationEventPreview } from "./previews/CreationEventPreview";
|
|
||||||
|
|
||||||
const PREVIEWS = {
|
const PREVIEWS = {
|
||||||
'm.room.message': {
|
'm.room.message': {
|
||||||
isState: false,
|
isState: false,
|
||||||
previewer: new MessageEventPreview(),
|
previewer: new MessageEventPreview(),
|
||||||
},
|
},
|
||||||
'm.room.name': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new NameEventPreview(),
|
|
||||||
},
|
|
||||||
'm.room.topic': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new TopicEventPreview(),
|
|
||||||
},
|
|
||||||
'm.room.member': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new MembershipEventPreview(),
|
|
||||||
},
|
|
||||||
'm.room.history_visibility': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new HistoryVisibilityEventPreview(),
|
|
||||||
},
|
|
||||||
'm.call.invite': {
|
'm.call.invite': {
|
||||||
isState: false,
|
isState: false,
|
||||||
previewer: new CallInviteEventPreview(),
|
previewer: new CallInviteEventPreview(),
|
||||||
|
@ -67,14 +44,6 @@ const PREVIEWS = {
|
||||||
isState: false,
|
isState: false,
|
||||||
previewer: new CallHangupEvent(),
|
previewer: new CallHangupEvent(),
|
||||||
},
|
},
|
||||||
'm.room.encryption': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new EncryptionEventPreview(),
|
|
||||||
},
|
|
||||||
'm.room.third_party_invite': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new ThirdPartyInviteEventPreview(),
|
|
||||||
},
|
|
||||||
'm.sticker': {
|
'm.sticker': {
|
||||||
isState: false,
|
isState: false,
|
||||||
previewer: new StickerEventPreview(),
|
previewer: new StickerEventPreview(),
|
||||||
|
@ -83,10 +52,6 @@ const PREVIEWS = {
|
||||||
isState: false,
|
isState: false,
|
||||||
previewer: new ReactionEventPreview(),
|
previewer: new ReactionEventPreview(),
|
||||||
},
|
},
|
||||||
'm.room.create': {
|
|
||||||
isState: true,
|
|
||||||
previewer: new CreationEventPreview(),
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// The maximum number of events we're willing to look back on to get a preview.
|
// The maximum number of events we're willing to look back on to get a preview.
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class CreationEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You created the room");
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s created the room", {senderName: getSenderName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class EncryptionEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You made the chat encrypted");
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s made the chat encrypted", {senderName: getSenderName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class HistoryVisibilityEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
const visibility = event.getContent()['history_visibility'];
|
|
||||||
const isUs = isSelf(event);
|
|
||||||
|
|
||||||
if (visibility === 'invited' || visibility === 'joined') {
|
|
||||||
return isUs
|
|
||||||
? _t("You made history visible to new members")
|
|
||||||
: _t("%(senderName)s made history visible to new members", {senderName: getSenderName(event)});
|
|
||||||
} else if (visibility === 'world_readable') {
|
|
||||||
return isUs
|
|
||||||
? _t("You made history visible to anyone")
|
|
||||||
: _t("%(senderName)s made history visible to anyone", {senderName: getSenderName(event)});
|
|
||||||
} else { // shared, default
|
|
||||||
return isUs
|
|
||||||
? _t("You made history visible to future members")
|
|
||||||
: _t("%(senderName)s made history visible to future members", {senderName: getSenderName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,90 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getTargetName, isSelfTarget } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class MembershipEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
const newMembership = event.getContent()['membership'];
|
|
||||||
const oldMembership = event.getPrevContent()['membership'];
|
|
||||||
const reason = event.getContent()['reason'];
|
|
||||||
const isUs = isSelfTarget(event);
|
|
||||||
|
|
||||||
if (newMembership === 'invite') {
|
|
||||||
return isUs
|
|
||||||
? _t("You were invited")
|
|
||||||
: _t("%(targetName)s was invited", {targetName: getTargetName(event)});
|
|
||||||
} else if (newMembership === 'leave' && oldMembership !== 'invite') {
|
|
||||||
if (event.getSender() === event.getStateKey()) {
|
|
||||||
return isUs
|
|
||||||
? _t("You left")
|
|
||||||
: _t("%(targetName)s left", {targetName: getTargetName(event)});
|
|
||||||
} else {
|
|
||||||
if (reason) {
|
|
||||||
return isUs
|
|
||||||
? _t("You were kicked (%(reason)s)", {reason})
|
|
||||||
: _t("%(targetName)s was kicked (%(reason)s)", {targetName: getTargetName(event), reason});
|
|
||||||
} else {
|
|
||||||
return isUs
|
|
||||||
? _t("You were kicked")
|
|
||||||
: _t("%(targetName)s was kicked", {targetName: getTargetName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (newMembership === 'leave' && oldMembership === 'invite') {
|
|
||||||
if (event.getSender() === event.getStateKey()) {
|
|
||||||
return isUs
|
|
||||||
? _t("You rejected the invite")
|
|
||||||
: _t("%(targetName)s rejected the invite", {targetName: getTargetName(event)});
|
|
||||||
} else {
|
|
||||||
return isUs
|
|
||||||
? _t("You were uninvited")
|
|
||||||
: _t("%(targetName)s was uninvited", {targetName: getTargetName(event)});
|
|
||||||
}
|
|
||||||
} else if (newMembership === 'ban') {
|
|
||||||
if (reason) {
|
|
||||||
return isUs
|
|
||||||
? _t("You were banned (%(reason)s)", {reason})
|
|
||||||
: _t("%(targetName)s was banned (%(reason)s)", {targetName: getTargetName(event), reason});
|
|
||||||
} else {
|
|
||||||
return isUs
|
|
||||||
? _t("You were banned")
|
|
||||||
: _t("%(targetName)s was banned", {targetName: getTargetName(event)});
|
|
||||||
}
|
|
||||||
} else if (newMembership === 'join' && oldMembership !== 'join') {
|
|
||||||
return isUs
|
|
||||||
? _t("You joined")
|
|
||||||
: _t("%(targetName)s joined", {targetName: getTargetName(event)});
|
|
||||||
} else {
|
|
||||||
const isDisplayNameChange = event.getContent()['displayname'] !== event.getPrevContent()['displayname'];
|
|
||||||
const isAvatarChange = event.getContent()['avatar_url'] !== event.getPrevContent()['avatar_url'];
|
|
||||||
if (isDisplayNameChange) {
|
|
||||||
return isUs
|
|
||||||
? _t("You changed your name")
|
|
||||||
: _t("%(targetName)s changed their name", {targetName: getTargetName(event)});
|
|
||||||
} else if (isAvatarChange) {
|
|
||||||
return isUs
|
|
||||||
? _t("You changed your avatar")
|
|
||||||
: _t("%(targetName)s changed their avatar", {targetName: getTargetName(event)});
|
|
||||||
} else {
|
|
||||||
return null; // no change
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class NameEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You changed the room name");
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s changed the room name", {senderName: getSenderName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
import { isValid3pidInvite } from "../../../RoomInvite";
|
|
||||||
|
|
||||||
export class ThirdPartyInviteEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
if (!isValid3pidInvite(event)) {
|
|
||||||
const targetName = event.getPrevContent().display_name || _t("Someone");
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You uninvited %(targetName)s", {targetName});
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s uninvited %(targetName)s", {senderName: getSenderName(event), targetName});
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const targetName = event.getContent().display_name;
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You invited %(targetName)s", {targetName});
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s invited %(targetName)s", {senderName: getSenderName(event), targetName});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IPreview } from "./IPreview";
|
|
||||||
import { TagID } from "../models";
|
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|
||||||
import { getSenderName, isSelf } from "./utils";
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export class TopicEventPreview implements IPreview {
|
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
|
||||||
if (isSelf(event)) {
|
|
||||||
return _t("You changed the room topic");
|
|
||||||
} else {
|
|
||||||
return _t("%(senderName)s changed the room topic", {senderName: getSenderName(event)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue