Use MatrixClientPeg::safeGet in src/components/views/* (#10987)

This commit is contained in:
Michael Telatynski 2023-06-15 08:46:19 +01:00 committed by GitHub
parent 4243847f4f
commit 280f6a9d93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
81 changed files with 265 additions and 250 deletions

View file

@ -307,12 +307,12 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
if (!this.props.mxEvent) return false;
// Sanity check (should never happen, but we shouldn't explode if it does)
const room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
const room = MatrixClientPeg.safeGet().getRoom(this.props.mxEvent.getRoomId());
if (!room) return false;
// Quickly check to see if the event was sent by us. If it wasn't, it won't qualify for
// special read receipts.
const myUserId = MatrixClientPeg.get().getUserId();
const myUserId = MatrixClientPeg.safeGet().getUserId();
if (this.props.mxEvent.getSender() !== myUserId) return false;
// Finally, determine if the type is relevant to the user. This notably excludes state
@ -344,7 +344,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
// If anyone has read the event besides us, we don't want to show a sent receipt.
const receipts = this.props.readReceipts || [];
const myUserId = MatrixClientPeg.get().getUserId();
const myUserId = MatrixClientPeg.safeGet().getUserId();
if (receipts.some((r) => r.userId !== myUserId)) return false;
// Finally, we should show a receipt.
@ -366,7 +366,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
public componentDidMount(): void {
this.suppressReadReceiptAnimation = false;
const client = MatrixClientPeg.get();
const client = MatrixClientPeg.safeGet();
if (!this.props.forExport) {
client.on(CryptoEvent.DeviceVerificationChanged, this.onDeviceVerificationChanged);
client.on(CryptoEvent.UserTrustStatusChanged, this.onUserVerificationChanged);
@ -431,7 +431,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
}
// If we're not listening for receipts and expect to be, register a listener.
if (!this.isListeningForReceipts && (this.shouldShowSentReceipt || this.shouldShowSendingReceipt)) {
MatrixClientPeg.get().on(RoomEvent.Receipt, this.onRoomReceipt);
MatrixClientPeg.safeGet().on(RoomEvent.Receipt, this.onRoomReceipt);
this.isListeningForReceipts = true;
}
// re-check the sender verification as outgoing events progress through the send process.
@ -443,7 +443,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
private onNewThread = (thread: Thread): void => {
if (thread.id === this.props.mxEvent.getId()) {
this.updateThread(thread);
const room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
const room = MatrixClientPeg.safeGet().getRoom(this.props.mxEvent.getRoomId());
room?.off(ThreadEvent.New, this.onNewThread);
}
};
@ -457,7 +457,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
* when we are at the sync stage
*/
if (!thread) {
const room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
const room = MatrixClientPeg.safeGet().getRoom(this.props.mxEvent.getRoomId());
thread = room?.findThreadForEvent(this.props.mxEvent) ?? undefined;
}
return thread ?? null;
@ -519,7 +519,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
private onRoomReceipt = (ev: MatrixEvent, room: Room): void => {
// ignore events for other rooms
const tileRoom = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
const tileRoom = MatrixClientPeg.safeGet().getRoom(this.props.mxEvent.getRoomId());
if (room !== tileRoom) return;
if (!this.shouldShowSentReceipt && !this.shouldShowSendingReceipt && !this.isListeningForReceipts) {
@ -531,7 +531,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
this.forceUpdate(() => {
// Per elsewhere in this file, we can remove the listener once we will have no further purpose for it.
if (!this.shouldShowSentReceipt && !this.shouldShowSendingReceipt) {
MatrixClientPeg.get().removeListener(RoomEvent.Receipt, this.onRoomReceipt);
MatrixClientPeg.safeGet().removeListener(RoomEvent.Receipt, this.onRoomReceipt);
this.isListeningForReceipts = false;
}
});
@ -574,7 +574,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
return;
}
const encryptionInfo = MatrixClientPeg.get().getEventEncryptionInfo(mxEvent);
const encryptionInfo = MatrixClientPeg.safeGet().getEventEncryptionInfo(mxEvent);
const senderId = mxEvent.getSender();
if (!senderId) {
// something definitely wrong is going on here
@ -582,7 +582,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
return;
}
const userTrust = MatrixClientPeg.get().checkUserTrust(senderId);
const userTrust = MatrixClientPeg.safeGet().checkUserTrust(senderId);
if (encryptionInfo.mismatchedSender) {
// something definitely wrong is going on here
@ -601,7 +601,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
const eventSenderTrust =
senderId &&
encryptionInfo.sender &&
(await MatrixClientPeg.get()
(await MatrixClientPeg.safeGet()
.getCrypto()
?.getDeviceVerificationStatus(senderId, encryptionInfo.sender.deviceId));
@ -686,7 +686,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
if (this.context.timelineRenderingType === TimelineRenderingType.Notification) return false;
if (this.context.timelineRenderingType === TimelineRenderingType.ThreadsList) return false;
const cli = MatrixClientPeg.get();
const cli = MatrixClientPeg.safeGet();
const actions = cli.getPushActionsForEvent(this.props.mxEvent.replacingEvent() || this.props.mxEvent);
// get the actions for the previous version of the event too if it is an edit
const previousActions = this.props.mxEvent.replacingEvent()
@ -697,7 +697,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
}
// don't show self-highlights from another of our clients
if (this.props.mxEvent.getSender() === MatrixClientPeg.get().credentials.userId) {
if (this.props.mxEvent.getSender() === cli.credentials.userId) {
return false;
}
@ -754,7 +754,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
}
}
if (MatrixClientPeg.get().isRoomEncrypted(ev.getRoomId()!)) {
if (MatrixClientPeg.safeGet().isRoomEncrypted(ev.getRoomId()!)) {
// else if room is encrypted
// and event is being encrypted or is not_sent (Unknown Devices/Network Error)
if (ev.status === EventStatus.ENCRYPTING) {
@ -904,7 +904,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
noBubbleEvent,
isSeeingThroughMessageHiddenForModeration,
} = getEventDisplayInfo(
MatrixClientPeg.get(),
MatrixClientPeg.safeGet(),
this.props.mxEvent,
this.context.showHiddenEvents,
this.shouldHideEvent(),
@ -1186,7 +1186,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
}
// Use `getSender()` because searched events might not have a proper `sender`.
const isOwnEvent = this.props.mxEvent?.getSender() === MatrixClientPeg.get().getUserId();
const isOwnEvent = this.props.mxEvent?.getSender() === MatrixClientPeg.safeGet().getUserId();
switch (this.context.timelineRenderingType) {
case TimelineRenderingType.Thread: {
@ -1242,7 +1242,7 @@ export class UnwrappedEventTile extends React.Component<EventTileProps, IState>
}
case TimelineRenderingType.Notification:
case TimelineRenderingType.ThreadsList: {
const room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
const room = MatrixClientPeg.safeGet().getRoom(this.props.mxEvent.getRoomId());
// tab-index=-1 to allow it to be focusable but do not add tab stop for it, primarily for screen readers
return React.createElement(
this.props.as || "li",