Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
t3chguy/sentinels
Michael Telatynski 2025-01-08 17:46:28 +00:00
parent bde3142b28
commit 5ca8d74117
No known key found for this signature in database
GPG Key ID: A2B008A5F49F5D0D
9 changed files with 19 additions and 16 deletions

View File

@ -237,7 +237,8 @@ const ForwardDialog: React.FC<IProps> = ({ matrixClient: cli, event, permalinkCr
room_id: event.getRoomId(),
origin_server_ts: event.getTs(),
});
mockEvent.sender = {
// @ts-ignore - private field access
mockEvent._sender = {
name: profileInfo.displayname || userId,
rawDisplayName: profileInfo.displayname,
userId,

View File

@ -89,7 +89,8 @@ export default class EventTilePreview extends React.Component<IProps, IState> {
/* eslint-enable quote-props */
// Fake it more
event.sender = {
// @ts-ignore - private field access
event._sender = {
name: this.props.displayName || this.props.userId,
rawDisplayName: this.props.displayName,
userId: this.props.userId,

View File

@ -154,7 +154,7 @@ async function fetchPinnedEvent(room: Room, pinnedEventId: string, cli: MatrixCl
const senderUserId = event.getSender();
if (senderUserId && PinningUtils.isUnpinnable(event)) {
// Inject sender information
event.sender = room.getMember(senderUserId);
event.setMetadata(room.currentState, false);
// Also inject any edits we've found
if (edit) event.makeReplaced(edit);

View File

@ -761,7 +761,8 @@ export default class EventIndex extends EventEmitter {
// We set this manually to avoid emitting RoomMember.membership and
// RoomMember.name events.
member.events.member = memberEvent;
matrixEvent.sender = member;
// @ts-ignore - private field access
matrixEvent._sender = member;
return matrixEvent;
});

View File

@ -110,12 +110,7 @@ export default abstract class Exporter {
}
protected setEventMetadata(event: MatrixEvent): MatrixEvent {
const roomState = this.room.currentState;
const sender = event.getSender();
event.sender = (!!sender && roomState?.getSentinelMember(sender)) || null;
if (event.getType() === "m.room.member") {
event.target = roomState?.getSentinelMember(event.getStateKey()!) ?? null;
}
event.setMetadata(this.room.currentState, false);
return event;
}

View File

@ -350,7 +350,8 @@ export default class HTMLExporter extends Exporter {
}
const modifiedEvent = new MatrixEvent();
modifiedEvent.event = mxEv.event;
modifiedEvent.sender = mxEv.sender;
// @ts-ignore - private field access
modifiedEvent._sender = mxEv.sender;
modifiedEvent.event.type = "m.room.message";
modifiedEvent.event.content = modifiedContent;
return modifiedEvent;

View File

@ -405,7 +405,8 @@ export function mkEvent(opts: MakeEventProps): MatrixEvent {
const mxEvent = opts.event ? new MatrixEvent(event) : (event as unknown as MatrixEvent);
if (!mxEvent.sender && opts.user && opts.room) {
mxEvent.sender = {
// @ts-ignore - private field access
mxEvent._sender = {
userId: opts.user,
membership: KnownMembership.Join,
name: opts.user,
@ -470,7 +471,8 @@ export function mkMembership(
}
const e = mkEvent(event);
if (opts.target) {
e.target = opts.target;
// @ts-ignore - private field access
e._target = opts.target;
}
return e;
}

View File

@ -179,7 +179,8 @@ describe("TextForEvent", () => {
},
},
});
mxEvent.sender = { name: userA.name } as RoomMember;
// @ts-ignore - private field access
mxEvent._sender = { name: userA.name } as RoomMember;
return mxEvent;
};

View File

@ -122,8 +122,9 @@ describe("ReactionEventPreview", () => {
type: "m.reaction",
room: roomId,
});
event.sender = new RoomMember(roomId, userId);
event.sender.name = "Bob";
// @ts-ignore - private field access
event._sender = new RoomMember(roomId, userId);
event.sender!.name = "Bob";
expect(preview.getTextFor(event)).toMatchInlineSnapshot(`"Bob reacted 🪿 to duck duck goose"`);
});