mirror of
https://github.com/element-hq/element-web.git
synced 2024-11-30 23:31:28 +03:00
Expand groups into variables with readable names
This commit is contained in:
parent
b1e3dc406c
commit
d207ee5244
1 changed files with 12 additions and 10 deletions
|
@ -177,25 +177,27 @@ module.exports = React.createClass({
|
||||||
const href = node.getAttribute("href");
|
const href = node.getAttribute("href");
|
||||||
// HtmlUtils transforms `matrix.to` links to local links, so match against
|
// HtmlUtils transforms `matrix.to` links to local links, so match against
|
||||||
// user or room app links.
|
// user or room app links.
|
||||||
const match = /^#\/(user|room)\/(.*)$/.exec(href);
|
const match = /^#\/(user|room)\/(.*)$/.exec(href) || [];
|
||||||
if (match) {
|
const resourceType = match[1]; // "user" or "room"
|
||||||
|
const resourceId = match[2]; // user ID or room ID
|
||||||
|
if (match && resourceType && resourceId) {
|
||||||
let avatar;
|
let avatar;
|
||||||
let roomId;
|
let roomId;
|
||||||
let room;
|
let room;
|
||||||
let member;
|
let member;
|
||||||
switch (match[1]) {
|
switch (resourceType) {
|
||||||
case "user":
|
case "user":
|
||||||
roomId = this.props.mxEvent.getRoomId();
|
roomId = this.props.mxEvent.getRoomId();
|
||||||
room = MatrixClientPeg.get().getRoom(roomId);
|
room = MatrixClientPeg.get().getRoom(roomId);
|
||||||
member = room.getMember(match[2]) ||
|
member = room.getMember(resourceId) ||
|
||||||
new RoomMember(null, match[2]);
|
new RoomMember(null, resourceId);
|
||||||
avatar = <MemberAvatar member={member} width={16} height={16} name={match[2]}/>;
|
avatar = <MemberAvatar member={member} width={16} height={16} name={resourceId}/>;
|
||||||
break;
|
break;
|
||||||
case "room":
|
case "room":
|
||||||
room = match[2][0] === '#' ?
|
room = resourceId[0] === '#' ?
|
||||||
MatrixClientPeg.get().getRooms().find((r) => {
|
MatrixClientPeg.get().getRooms().find((r) => {
|
||||||
return r.getCanonicalAlias() === match[2];
|
return r.getCanonicalAlias() === resourceId;
|
||||||
}) : MatrixClientPeg.get().getRoom(match[2]);
|
}) : MatrixClientPeg.get().getRoom(resourceId);
|
||||||
if (room) {
|
if (room) {
|
||||||
avatar = <RoomAvatar room={room} width={16} height={16}/>;
|
avatar = <RoomAvatar room={room} width={16} height={16}/>;
|
||||||
}
|
}
|
||||||
|
@ -204,7 +206,7 @@ module.exports = React.createClass({
|
||||||
if (avatar) {
|
if (avatar) {
|
||||||
const avatarContainer = document.createElement('span');
|
const avatarContainer = document.createElement('span');
|
||||||
node.className = "mx_MTextBody_pill " +
|
node.className = "mx_MTextBody_pill " +
|
||||||
(match[1] === "user" ? "mx_UserPill" : "mx_RoomPill");
|
(resourceType === "user" ? "mx_UserPill" : "mx_RoomPill");
|
||||||
ReactDOM.render(avatar, avatarContainer);
|
ReactDOM.render(avatar, avatarContainer);
|
||||||
node.insertBefore(avatarContainer, node.firstChild);
|
node.insertBefore(avatarContainer, node.firstChild);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue