From eb0e9ecab4982a897fe0fd9aff27c347f5283a8a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 21 Jul 2020 09:28:27 +0100 Subject: [PATCH 1/2] Remove message previews for state events Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/stores/room-list/MessagePreviewStore.ts | 35 -------- .../previews/CreationEventPreview.ts | 31 ------- .../previews/EncryptionEventPreview.ts | 31 ------- .../previews/HistoryVisibilityEventPreview.ts | 42 --------- .../previews/MembershipEventPreview.ts | 90 ------------------- .../room-list/previews/NameEventPreview.ts | 31 ------- .../previews/ThirdPartyInviteEventPreview.ts | 42 --------- .../room-list/previews/TopicEventPreview.ts | 31 ------- 8 files changed, 333 deletions(-) delete mode 100644 src/stores/room-list/previews/CreationEventPreview.ts delete mode 100644 src/stores/room-list/previews/EncryptionEventPreview.ts delete mode 100644 src/stores/room-list/previews/HistoryVisibilityEventPreview.ts delete mode 100644 src/stores/room-list/previews/MembershipEventPreview.ts delete mode 100644 src/stores/room-list/previews/NameEventPreview.ts delete mode 100644 src/stores/room-list/previews/ThirdPartyInviteEventPreview.ts delete mode 100644 src/stores/room-list/previews/TopicEventPreview.ts diff --git a/src/stores/room-list/MessagePreviewStore.ts b/src/stores/room-list/MessagePreviewStore.ts index e5ef735927..45f1b6c879 100644 --- a/src/stores/room-list/MessagePreviewStore.ts +++ b/src/stores/room-list/MessagePreviewStore.ts @@ -19,42 +19,19 @@ import { ActionPayload } from "../../dispatcher/payloads"; import { AsyncStoreWithClient } from "../AsyncStoreWithClient"; import defaultDispatcher from "../../dispatcher/dispatcher"; import { MessageEventPreview } from "./previews/MessageEventPreview"; -import { NameEventPreview } from "./previews/NameEventPreview"; import { TagID } from "./models"; 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 { CallAnswerEventPreview } from "./previews/CallAnswerEventPreview"; import { CallHangupEvent } from "./previews/CallHangupEvent"; -import { EncryptionEventPreview } from "./previews/EncryptionEventPreview"; -import { ThirdPartyInviteEventPreview } from "./previews/ThirdPartyInviteEventPreview"; import { StickerEventPreview } from "./previews/StickerEventPreview"; import { ReactionEventPreview } from "./previews/ReactionEventPreview"; -import { CreationEventPreview } from "./previews/CreationEventPreview"; const PREVIEWS = { 'm.room.message': { isState: false, 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': { isState: false, previewer: new CallInviteEventPreview(), @@ -67,14 +44,6 @@ const PREVIEWS = { isState: false, previewer: new CallHangupEvent(), }, - 'm.room.encryption': { - isState: true, - previewer: new EncryptionEventPreview(), - }, - 'm.room.third_party_invite': { - isState: true, - previewer: new ThirdPartyInviteEventPreview(), - }, 'm.sticker': { isState: false, previewer: new StickerEventPreview(), @@ -83,10 +52,6 @@ const PREVIEWS = { isState: false, 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. diff --git a/src/stores/room-list/previews/CreationEventPreview.ts b/src/stores/room-list/previews/CreationEventPreview.ts deleted file mode 100644 index 62bb5fe53a..0000000000 --- a/src/stores/room-list/previews/CreationEventPreview.ts +++ /dev/null @@ -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)}); - } - } -} diff --git a/src/stores/room-list/previews/EncryptionEventPreview.ts b/src/stores/room-list/previews/EncryptionEventPreview.ts deleted file mode 100644 index d00fd7e7f9..0000000000 --- a/src/stores/room-list/previews/EncryptionEventPreview.ts +++ /dev/null @@ -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)}); - } - } -} diff --git a/src/stores/room-list/previews/HistoryVisibilityEventPreview.ts b/src/stores/room-list/previews/HistoryVisibilityEventPreview.ts deleted file mode 100644 index ac77a181f8..0000000000 --- a/src/stores/room-list/previews/HistoryVisibilityEventPreview.ts +++ /dev/null @@ -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)}); - } - } -} diff --git a/src/stores/room-list/previews/MembershipEventPreview.ts b/src/stores/room-list/previews/MembershipEventPreview.ts deleted file mode 100644 index 44339aab5f..0000000000 --- a/src/stores/room-list/previews/MembershipEventPreview.ts +++ /dev/null @@ -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 - } - } - } -} diff --git a/src/stores/room-list/previews/NameEventPreview.ts b/src/stores/room-list/previews/NameEventPreview.ts deleted file mode 100644 index 4197abacfb..0000000000 --- a/src/stores/room-list/previews/NameEventPreview.ts +++ /dev/null @@ -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)}); - } - } -} diff --git a/src/stores/room-list/previews/ThirdPartyInviteEventPreview.ts b/src/stores/room-list/previews/ThirdPartyInviteEventPreview.ts deleted file mode 100644 index b22cd9fac9..0000000000 --- a/src/stores/room-list/previews/ThirdPartyInviteEventPreview.ts +++ /dev/null @@ -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}); - } - } - } -} diff --git a/src/stores/room-list/previews/TopicEventPreview.ts b/src/stores/room-list/previews/TopicEventPreview.ts deleted file mode 100644 index 9b499aae8f..0000000000 --- a/src/stores/room-list/previews/TopicEventPreview.ts +++ /dev/null @@ -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)}); - } - } -} From 193a0d89af2500ae466f240075bc96a112f8c68a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 21 Jul 2020 09:31:22 +0100 Subject: [PATCH 2/2] Prefix message previews for emotes with a * Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/i18n/strings/en_EN.json | 42 +------------------ .../room-list/previews/MessageEventPreview.ts | 2 +- 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 998d582853..56ea3d854d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -437,50 +437,10 @@ "%(senderName)s started a call": "%(senderName)s started a call", "Waiting for answer": "Waiting for answer", "%(senderName)s is calling": "%(senderName)s is calling", - "You created the room": "You created the room", - "%(senderName)s created the room": "%(senderName)s created the room", - "You made the chat encrypted": "You made the chat encrypted", - "%(senderName)s made the chat encrypted": "%(senderName)s made the chat encrypted", - "You made history visible to new members": "You made history visible to new members", - "%(senderName)s made history visible to new members": "%(senderName)s made history visible to new members", - "You made history visible to anyone": "You made history visible to anyone", - "%(senderName)s made history visible to anyone": "%(senderName)s made history visible to anyone", - "You made history visible to future members": "You made history visible to future members", - "%(senderName)s made history visible to future members": "%(senderName)s made history visible to future members", - "You were invited": "You were invited", - "%(targetName)s was invited": "%(targetName)s was invited", - "You left": "You left", - "%(targetName)s left": "%(targetName)s left", - "You were kicked (%(reason)s)": "You were kicked (%(reason)s)", - "%(targetName)s was kicked (%(reason)s)": "%(targetName)s was kicked (%(reason)s)", - "You were kicked": "You were kicked", - "%(targetName)s was kicked": "%(targetName)s was kicked", - "You rejected the invite": "You rejected the invite", - "%(targetName)s rejected the invite": "%(targetName)s rejected the invite", - "You were uninvited": "You were uninvited", - "%(targetName)s was uninvited": "%(targetName)s was uninvited", - "You were banned (%(reason)s)": "You were banned (%(reason)s)", - "%(targetName)s was banned (%(reason)s)": "%(targetName)s was banned (%(reason)s)", - "You were banned": "You were banned", - "%(targetName)s was banned": "%(targetName)s was banned", - "You joined": "You joined", - "%(targetName)s joined": "%(targetName)s joined", - "You changed your name": "You changed your name", - "%(targetName)s changed their name": "%(targetName)s changed their name", - "You changed your avatar": "You changed your avatar", - "%(targetName)s changed their avatar": "%(targetName)s changed their avatar", - "%(senderName)s %(emote)s": "%(senderName)s %(emote)s", + "* %(senderName)s %(emote)s": "* %(senderName)s %(emote)s", "%(senderName)s: %(message)s": "%(senderName)s: %(message)s", - "You changed the room name": "You changed the room name", - "%(senderName)s changed the room name": "%(senderName)s changed the room name", "%(senderName)s: %(reaction)s": "%(senderName)s: %(reaction)s", "%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s", - "You uninvited %(targetName)s": "You uninvited %(targetName)s", - "%(senderName)s uninvited %(targetName)s": "%(senderName)s uninvited %(targetName)s", - "You invited %(targetName)s": "You invited %(targetName)s", - "%(senderName)s invited %(targetName)s": "%(senderName)s invited %(targetName)s", - "You changed the room topic": "You changed the room topic", - "%(senderName)s changed the room topic": "%(senderName)s changed the room topic", "New spinner design": "New spinner design", "Message Pinning": "Message Pinning", "Custom user status messages": "Custom user status messages", diff --git a/src/stores/room-list/previews/MessageEventPreview.ts b/src/stores/room-list/previews/MessageEventPreview.ts index 86cb51ef15..deed7dcf2c 100644 --- a/src/stores/room-list/previews/MessageEventPreview.ts +++ b/src/stores/room-list/previews/MessageEventPreview.ts @@ -59,7 +59,7 @@ export class MessageEventPreview implements IPreview { } if (msgtype === 'm.emote') { - return _t("%(senderName)s %(emote)s", {senderName: getSenderName(event), emote: body}); + return _t("* %(senderName)s %(emote)s", {senderName: getSenderName(event), emote: body}); } if (isSelf(event) || !shouldPrefixMessagesIn(event.getRoomId(), tagId)) {