Merge branch 'develop' into weeman1337/prettier

This commit is contained in:
Michael Weimann 2022-12-12 16:09:11 +01:00
commit 27c5b793e9
No known key found for this signature in database
GPG key ID: 53F535A266BB9584
11 changed files with 286 additions and 29 deletions

View file

@ -37,15 +37,14 @@ import SettingsStore from "./settings/SettingsStore";
import { ALL_RULE_TYPES, ROOM_RULE_TYPES, SERVER_RULE_TYPES, USER_RULE_TYPES } from "./mjolnir/BanList";
import { WIDGET_LAYOUT_EVENT_TYPE } from "./stores/widgets/WidgetLayoutStore";
import { RightPanelPhases } from "./stores/right-panel/RightPanelStorePhases";
import { Action } from "./dispatcher/actions";
import defaultDispatcher from "./dispatcher/dispatcher";
import { MatrixClientPeg } from "./MatrixClientPeg";
import { ROOM_SECURITY_TAB } from "./components/views/dialogs/RoomSettingsDialog";
import AccessibleButton from "./components/views/elements/AccessibleButton";
import RightPanelStore from "./stores/right-panel/RightPanelStore";
import { ViewRoomPayload } from "./dispatcher/payloads/ViewRoomPayload";
import { isLocationEvent } from "./utils/EventUtils";
import { highlightEvent, isLocationEvent } from "./utils/EventUtils";
import { ElementCall } from "./models/Call";
import { textForVoiceBroadcastStoppedEvent, VoiceBroadcastInfoEventType } from "./voice-broadcast";
export function getSenderName(event: MatrixEvent): string {
return event.sender?.name ?? event.getSender() ?? _t("Someone");
@ -546,16 +545,6 @@ function textForPowerEvent(event: MatrixEvent): () => string | null {
});
}
const onPinnedOrUnpinnedMessageClick = (messageId: string, roomId: string): void => {
defaultDispatcher.dispatch<ViewRoomPayload>({
action: Action.ViewRoom,
event_id: messageId,
highlighted: true,
room_id: roomId,
metricsTrigger: undefined, // room doesn't change
});
};
const onPinnedMessagesClick = (): void => {
RightPanelStore.instance.setCard({ phase: RightPanelPhases.PinnedMessages }, false);
};
@ -582,10 +571,7 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => Render
{ senderName },
{
a: (sub) => (
<AccessibleButton
kind="link_inline"
onClick={(e) => onPinnedOrUnpinnedMessageClick(messageId, roomId)}
>
<AccessibleButton kind="link_inline" onClick={(e) => highlightEvent(roomId, messageId)}>
{sub}
</AccessibleButton>
),
@ -615,10 +601,7 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => Render
{ senderName },
{
a: (sub) => (
<AccessibleButton
kind="link_inline"
onClick={(e) => onPinnedOrUnpinnedMessageClick(messageId, roomId)}
>
<AccessibleButton kind="link_inline" onClick={(e) => highlightEvent(roomId, messageId)}>
{sub}
</AccessibleButton>
),
@ -875,7 +858,7 @@ function textForPollEndEvent(event: MatrixEvent): () => string | null {
});
}
type Renderable = string | JSX.Element | null;
type Renderable = string | React.ReactNode | null;
interface IHandlers {
[type: string]: (ev: MatrixEvent, allowJSX: boolean, showHiddenEvents?: boolean) => () => Renderable;
@ -909,6 +892,7 @@ const stateHandlers: IHandlers = {
// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)
"im.vector.modular.widgets": textForWidgetEvent,
[WIDGET_LAYOUT_EVENT_TYPE]: textForWidgetLayoutEvent,
[VoiceBroadcastInfoEventType]: textForVoiceBroadcastStoppedEvent,
};
// Add all the Mjolnir stuff to the renderer
@ -940,8 +924,8 @@ export function hasText(ev: MatrixEvent, showHiddenEvents?: boolean): boolean {
* to avoid hitting the settings store
*/
export function textForEvent(ev: MatrixEvent): string;
export function textForEvent(ev: MatrixEvent, allowJSX: true, showHiddenEvents?: boolean): string | JSX.Element;
export function textForEvent(ev: MatrixEvent, allowJSX = false, showHiddenEvents?: boolean): string | JSX.Element {
export function textForEvent(ev: MatrixEvent, allowJSX: true, showHiddenEvents?: boolean): string | React.ReactNode;
export function textForEvent(ev: MatrixEvent, allowJSX = false, showHiddenEvents?: boolean): string | React.ReactNode {
const handler = (ev.isState() ? stateHandlers : handlers)[ev.getType()];
return handler?.(ev, allowJSX, showHiddenEvents)?.() || "";
}