Improve TS in SenderProfile

This commit is contained in:
Michael Telatynski 2021-07-15 11:49:55 +01:00
parent b8ac40ae55
commit 1eaf6dd4ed

View file

@ -15,12 +15,14 @@
*/ */
import React from 'react'; import React from 'react';
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
import Flair from '../elements/Flair'; import Flair from '../elements/Flair';
import FlairStore from '../../../stores/FlairStore'; import FlairStore from '../../../stores/FlairStore';
import { getUserNameColorClass } from '../../../utils/FormattingUtils'; import { getUserNameColorClass } from '../../../utils/FormattingUtils';
import MatrixClientContext from "../../../contexts/MatrixClientContext"; import MatrixClientContext from "../../../contexts/MatrixClientContext";
import { replaceableComponent } from "../../../utils/replaceableComponent"; import { replaceableComponent } from "../../../utils/replaceableComponent";
import { MatrixEvent } from "matrix-js-sdk/src/models/event"; import { MsgType } from "matrix-js-sdk/lib/@types/event";
interface IProps { interface IProps {
mxEvent: MatrixEvent; mxEvent: MatrixEvent;
@ -50,7 +52,7 @@ export default class SenderProfile extends React.Component<IProps, IState> {
componentDidMount() { componentDidMount() {
this.unmounted = false; this.unmounted = false;
this._updateRelatedGroups(); this.updateRelatedGroups();
if (this.state.userGroups.length === 0) { if (this.state.userGroups.length === 0) {
this.getPublicisedGroups(); this.getPublicisedGroups();
@ -64,7 +66,7 @@ export default class SenderProfile extends React.Component<IProps, IState> {
this.context.removeListener('RoomState.events', this.onRoomStateEvents); this.context.removeListener('RoomState.events', this.onRoomStateEvents);
} }
async getPublicisedGroups() { private async getPublicisedGroups() {
if (!this.unmounted) { if (!this.unmounted) {
const userGroups = await FlairStore.getPublicisedGroupsCached( const userGroups = await FlairStore.getPublicisedGroupsCached(
this.context, this.props.mxEvent.getSender(), this.context, this.props.mxEvent.getSender(),
@ -73,15 +75,15 @@ export default class SenderProfile extends React.Component<IProps, IState> {
} }
} }
onRoomStateEvents = event => { private onRoomStateEvents = (event: MatrixEvent) => {
if (event.getType() === 'm.room.related_groups' && if (event.getType() === 'm.room.related_groups' &&
event.getRoomId() === this.props.mxEvent.getRoomId() event.getRoomId() === this.props.mxEvent.getRoomId()
) { ) {
this._updateRelatedGroups(); this.updateRelatedGroups();
} }
}; };
_updateRelatedGroups() { private updateRelatedGroups() {
if (this.unmounted) return; if (this.unmounted) return;
const room = this.context.getRoom(this.props.mxEvent.getRoomId()); const room = this.context.getRoom(this.props.mxEvent.getRoomId());
if (!room) return; if (!room) return;
@ -92,7 +94,7 @@ export default class SenderProfile extends React.Component<IProps, IState> {
}); });
} }
_getDisplayedGroups(userGroups, relatedGroups) { private getDisplayedGroups(userGroups?: string[], relatedGroups?: string[]) {
let displayedGroups = userGroups || []; let displayedGroups = userGroups || [];
if (relatedGroups && relatedGroups.length > 0) { if (relatedGroups && relatedGroups.length > 0) {
displayedGroups = relatedGroups.filter((groupId) => { displayedGroups = relatedGroups.filter((groupId) => {
@ -113,7 +115,7 @@ export default class SenderProfile extends React.Component<IProps, IState> {
const displayName = mxEvent.sender?.rawDisplayName || mxEvent.getSender() || ""; const displayName = mxEvent.sender?.rawDisplayName || mxEvent.getSender() || "";
const mxid = mxEvent.sender?.userId || mxEvent.getSender() || ""; const mxid = mxEvent.sender?.userId || mxEvent.getSender() || "";
if (msgtype === 'm.emote') { if (msgtype === MsgType.Emote) {
return null; // emote message must include the name so don't duplicate it return null; // emote message must include the name so don't duplicate it
} }
@ -128,7 +130,7 @@ export default class SenderProfile extends React.Component<IProps, IState> {
let flair; let flair;
if (this.props.enableFlair) { if (this.props.enableFlair) {
const displayedGroups = this._getDisplayedGroups( const displayedGroups = this.getDisplayedGroups(
this.state.userGroups, this.state.relatedGroups, this.state.userGroups, this.state.relatedGroups,
); );