Apply prettier formatting

This commit is contained in:
Michael Weimann 2022-12-12 12:24:14 +01:00
parent 1cac306093
commit 526645c791
No known key found for this signature in database
GPG key ID: 53F535A266BB9584
1576 changed files with 65385 additions and 62478 deletions

View file

@ -14,27 +14,27 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import classNames from 'classnames';
import { Room } from 'matrix-js-sdk/src/models/room';
import { RoomMember } from 'matrix-js-sdk/src/models/room-member';
import React from "react";
import classNames from "classnames";
import { Room } from "matrix-js-sdk/src/models/room";
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
import { logger } from "matrix-js-sdk/src/logger";
import { MatrixClient } from 'matrix-js-sdk/src/client';
import { MatrixClient } from "matrix-js-sdk/src/client";
import dis from '../../../dispatcher/dispatcher';
import { MatrixClientPeg } from '../../../MatrixClientPeg';
import dis from "../../../dispatcher/dispatcher";
import { MatrixClientPeg } from "../../../MatrixClientPeg";
import { getPrimaryPermalinkEntity, parsePermalink } from "../../../utils/permalinks/Permalinks";
import MatrixClientContext from "../../../contexts/MatrixClientContext";
import { Action } from "../../../dispatcher/actions";
import Tooltip, { Alignment } from './Tooltip';
import RoomAvatar from '../avatars/RoomAvatar';
import MemberAvatar from '../avatars/MemberAvatar';
import Tooltip, { Alignment } from "./Tooltip";
import RoomAvatar from "../avatars/RoomAvatar";
import MemberAvatar from "../avatars/MemberAvatar";
import { objectHasDiff } from "../../../utils/objects";
export enum PillType {
UserMention = 'TYPE_USER_MENTION',
RoomMention = 'TYPE_ROOM_MENTION',
AtRoomMention = 'TYPE_AT_ROOM_MENTION', // '@room' mention
UserMention = "TYPE_USER_MENTION",
RoomMention = "TYPE_ROOM_MENTION",
AtRoomMention = "TYPE_AT_ROOM_MENTION", // '@room' mention
}
interface IProps {
@ -102,41 +102,51 @@ export default class Pill extends React.Component<IProps, IState> {
}
}
const pillType = this.props.type || {
'@': PillType.UserMention,
'#': PillType.RoomMention,
'!': PillType.RoomMention,
}[prefix];
const pillType =
this.props.type ||
{
"@": PillType.UserMention,
"#": PillType.RoomMention,
"!": PillType.RoomMention,
}[prefix];
let member: RoomMember;
let room: Room;
switch (pillType) {
case PillType.AtRoomMention: {
room = this.props.room;
}
break;
case PillType.UserMention: {
const localMember = this.props.room?.getMember(resourceId);
member = localMember;
if (!localMember) {
member = new RoomMember(null, resourceId);
this.doProfileLookup(resourceId, member);
case PillType.AtRoomMention:
{
room = this.props.room;
}
}
break;
case PillType.RoomMention: {
const localRoom = resourceId[0] === '#' ?
MatrixClientPeg.get().getRooms().find((r) => {
return r.getCanonicalAlias() === resourceId ||
r.getAltAliases().includes(resourceId);
}) : MatrixClientPeg.get().getRoom(resourceId);
room = localRoom;
if (!localRoom) {
// TODO: This would require a new API to resolve a room alias to
// a room avatar and name.
// this.doRoomProfileLookup(resourceId, member);
case PillType.UserMention:
{
const localMember = this.props.room?.getMember(resourceId);
member = localMember;
if (!localMember) {
member = new RoomMember(null, resourceId);
this.doProfileLookup(resourceId, member);
}
}
break;
case PillType.RoomMention:
{
const localRoom =
resourceId[0] === "#"
? MatrixClientPeg.get()
.getRooms()
.find((r) => {
return (
r.getCanonicalAlias() === resourceId || r.getAltAliases().includes(resourceId)
);
})
: MatrixClientPeg.get().getRoom(resourceId);
room = localRoom;
if (!localRoom) {
// TODO: This would require a new API to resolve a room alias to
// a room avatar and name.
// this.doRoomProfileLookup(resourceId, member);
}
}
}
break;
}
this.setState({ resourceId, pillType, member, room });
@ -171,24 +181,27 @@ export default class Pill extends React.Component<IProps, IState> {
};
private doProfileLookup(userId: string, member): void {
MatrixClientPeg.get().getProfileInfo(userId).then((resp) => {
if (this.unmounted) {
return;
}
member.name = resp.displayname;
member.rawDisplayName = resp.displayname;
member.events.member = {
getContent: () => {
return { avatar_url: resp.avatar_url };
},
getDirectionalContent: function() {
return this.getContent();
},
};
this.setState({ member });
}).catch((err) => {
logger.error('Could not retrieve profile data for ' + userId + ':', err);
});
MatrixClientPeg.get()
.getProfileInfo(userId)
.then((resp) => {
if (this.unmounted) {
return;
}
member.name = resp.displayname;
member.rawDisplayName = resp.displayname;
member.events.member = {
getContent: () => {
return { avatar_url: resp.avatar_url };
},
getDirectionalContent: function () {
return this.getContent();
},
};
this.setState({ member });
})
.catch((err) => {
logger.error("Could not retrieve profile data for " + userId + ":", err);
});
}
private onUserPillClicked = (e): void => {
@ -209,48 +222,53 @@ export default class Pill extends React.Component<IProps, IState> {
let href = this.props.url;
let onClick;
switch (this.state.pillType) {
case PillType.AtRoomMention: {
const room = this.props.room;
if (room) {
linkText = "@room";
if (this.props.shouldShowPillAvatar) {
avatar = <RoomAvatar room={room} width={16} height={16} aria-hidden="true" />;
case PillType.AtRoomMention:
{
const room = this.props.room;
if (room) {
linkText = "@room";
if (this.props.shouldShowPillAvatar) {
avatar = <RoomAvatar room={room} width={16} height={16} aria-hidden="true" />;
}
pillClass = "mx_AtRoomPill";
}
pillClass = 'mx_AtRoomPill';
}
}
break;
case PillType.UserMention: {
// If this user is not a member of this room, default to the empty member
const member = this.state.member;
if (member) {
userId = member.userId;
member.rawDisplayName = member.rawDisplayName || '';
linkText = member.rawDisplayName;
if (this.props.shouldShowPillAvatar) {
avatar = <MemberAvatar member={member} width={16} height={16} aria-hidden="true" hideTitle />;
case PillType.UserMention:
{
// If this user is not a member of this room, default to the empty member
const member = this.state.member;
if (member) {
userId = member.userId;
member.rawDisplayName = member.rawDisplayName || "";
linkText = member.rawDisplayName;
if (this.props.shouldShowPillAvatar) {
avatar = (
<MemberAvatar member={member} width={16} height={16} aria-hidden="true" hideTitle />
);
}
pillClass = "mx_UserPill";
href = null;
onClick = this.onUserPillClicked;
}
pillClass = 'mx_UserPill';
href = null;
onClick = this.onUserPillClicked;
}
}
break;
case PillType.RoomMention: {
const room = this.state.room;
if (room) {
linkText = room.name || resource;
if (this.props.shouldShowPillAvatar) {
avatar = <RoomAvatar room={room} width={16} height={16} aria-hidden="true" />;
case PillType.RoomMention:
{
const room = this.state.room;
if (room) {
linkText = room.name || resource;
if (this.props.shouldShowPillAvatar) {
avatar = <RoomAvatar room={room} width={16} height={16} aria-hidden="true" />;
}
}
pillClass = room?.isSpaceRoom() ? "mx_SpacePill" : "mx_RoomPill";
}
pillClass = room?.isSpaceRoom() ? "mx_SpacePill" : "mx_RoomPill";
}
break;
}
const classes = classNames("mx_Pill", pillClass, {
"mx_UserPill_me": userId === MatrixClientPeg.get().getUserId(),
mx_UserPill_me: userId === MatrixClientPeg.get().getUserId(),
});
if (this.state.pillType) {
@ -259,29 +277,31 @@ export default class Pill extends React.Component<IProps, IState> {
tip = <Tooltip label={resource} alignment={Alignment.Right} />;
}
return <bdi><MatrixClientContext.Provider value={this.matrixClient}>
{ this.props.inMessage ?
<a
className={classes}
href={href}
onClick={onClick}
onMouseOver={this.onMouseOver}
onMouseLeave={this.onMouseLeave}
>
{ avatar }
<span className="mx_Pill_linkText">{ linkText }</span>
{ tip }
</a> :
<span
className={classes}
onMouseOver={this.onMouseOver}
onMouseLeave={this.onMouseLeave}
>
{ avatar }
<span className="mx_Pill_linkText">{ linkText }</span>
{ tip }
</span> }
</MatrixClientContext.Provider></bdi>;
return (
<bdi>
<MatrixClientContext.Provider value={this.matrixClient}>
{this.props.inMessage ? (
<a
className={classes}
href={href}
onClick={onClick}
onMouseOver={this.onMouseOver}
onMouseLeave={this.onMouseLeave}
>
{avatar}
<span className="mx_Pill_linkText">{linkText}</span>
{tip}
</a>
) : (
<span className={classes} onMouseOver={this.onMouseOver} onMouseLeave={this.onMouseLeave}>
{avatar}
<span className="mx_Pill_linkText">{linkText}</span>
{tip}
</span>
)}
</MatrixClientContext.Provider>
</bdi>
);
} else {
// Deliberately render nothing if the URL isn't recognised
return null;