Show regular avatar for broadcasts (#9835)
This commit is contained in:
parent
49fefb0c32
commit
064a5ad422
2 changed files with 75 additions and 9 deletions
|
@ -18,12 +18,33 @@ import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|||
import { EventType, MsgType } from "matrix-js-sdk/src/@types/event";
|
||||
import { M_POLL_START } from "matrix-events-sdk";
|
||||
import { M_BEACON_INFO } from "matrix-js-sdk/src/@types/beacon";
|
||||
import { IContent } from "matrix-js-sdk/src/matrix";
|
||||
|
||||
import SettingsStore from "../settings/SettingsStore";
|
||||
import { haveRendererForEvent, JitsiEventFactory, JSONEventFactory, pickFactory } from "../events/EventTileFactory";
|
||||
import { MatrixClientPeg } from "../MatrixClientPeg";
|
||||
import { getMessageModerationState, isLocationEvent, MessageModerationState } from "./EventUtils";
|
||||
import { ElementCall } from "../models/Call";
|
||||
import { VoiceBroadcastInfoEventType, VoiceBroadcastInfoState } from "../voice-broadcast";
|
||||
|
||||
const calcIsInfoMessage = (
|
||||
eventType: EventType | string,
|
||||
content: IContent,
|
||||
isBubbleMessage: boolean,
|
||||
isLeftAlignedBubbleMessage: boolean,
|
||||
): boolean => {
|
||||
return (
|
||||
!isBubbleMessage &&
|
||||
!isLeftAlignedBubbleMessage &&
|
||||
eventType !== EventType.RoomMessage &&
|
||||
eventType !== EventType.RoomMessageEncrypted &&
|
||||
eventType !== EventType.Sticker &&
|
||||
eventType !== EventType.RoomCreate &&
|
||||
!M_POLL_START.matches(eventType) &&
|
||||
!M_BEACON_INFO.matches(eventType) &&
|
||||
!(eventType === VoiceBroadcastInfoEventType && content?.state === VoiceBroadcastInfoState.Started)
|
||||
);
|
||||
};
|
||||
|
||||
export function getEventDisplayInfo(
|
||||
mxEvent: MatrixEvent,
|
||||
|
@ -67,15 +88,7 @@ export function getEventDisplayInfo(
|
|||
factory === JitsiEventFactory;
|
||||
const isLeftAlignedBubbleMessage =
|
||||
!isBubbleMessage && (eventType === EventType.CallInvite || ElementCall.CALL_EVENT_TYPE.matches(eventType));
|
||||
let isInfoMessage =
|
||||
!isBubbleMessage &&
|
||||
!isLeftAlignedBubbleMessage &&
|
||||
eventType !== EventType.RoomMessage &&
|
||||
eventType !== EventType.RoomMessageEncrypted &&
|
||||
eventType !== EventType.Sticker &&
|
||||
eventType !== EventType.RoomCreate &&
|
||||
!M_POLL_START.matches(eventType) &&
|
||||
!M_BEACON_INFO.matches(eventType);
|
||||
let isInfoMessage = calcIsInfoMessage(eventType, content, isBubbleMessage, isLeftAlignedBubbleMessage);
|
||||
// Some non-info messages want to be rendered in the appropriate bubble column but without the bubble background
|
||||
const noBubbleEvent =
|
||||
(eventType === EventType.RoomMessage && msgtype === MsgType.Emote) ||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue