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 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.
 | ||||
|  |  | |||
|  | @ -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
	
	 Michael Telatynski
						Michael Telatynski