Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 9f2ccdf

Browse files
committed
Add support for displaying avatars and links in bridge info
1 parent 2bc6e2e commit 9f2ccdf

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

src/components/views/settings/tabs/room/BridgeSettingsTab.js

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import {_t} from "../../../../../languageHandler";
2020
import MatrixClientPeg from "../../../../../MatrixClientPeg";
2121
import Pill from "../../../elements/Pill";
2222
import {makeUserPermalink} from "../../../../../utils/permalinks/Permalinks";
23+
import BaseAvatar from "../../../avatars/BaseAvatar";
24+
import { ContentRepo } from "matrix-js-sdk";
2325

2426
const BRIDGE_EVENT_TYPES = [
2527
"uk.half-shot.bridge",
@@ -47,9 +49,10 @@ export default class BridgeSettingsTab extends React.Component {
4749
if (!content || !content.channel || !content.protocol) {
4850
return null;
4951
}
52+
const { channel, network } = content;
5053
const protocolName = content.protocol.displayname || content.protocol.id;
51-
const channelName = content.channel.displayname || content.channel.id;
52-
const networkName = content.network ? " on " + (content.network.displayname || content.network.id) : "";
54+
const channelName = channel.displayname || channel.id;
55+
const networkName = network ? network.displayname || network.id : "";
5356
let status = null;
5457
if (content.status === "active") {
5558
status = (<p> Status: <b>Active</b> </p>);
@@ -78,13 +81,41 @@ export default class BridgeSettingsTab extends React.Component {
7881
/> bot user.</p>
7982
);
8083

84+
const channelLink = channel.external_url ? (<a target="_blank" href={channel.external_url}>{channelName}</a>) : channelName;
85+
const networkLink = network && network.external_url ? (<a target="_blank" href={network.external_url}>{networkName}</a>)
86+
: networkName;
87+
8188
const chanAndNetworkInfo = (
82-
<p> Bridged into {channelName}{networkName}, on {protocolName}</p>
89+
<p> Bridged into {channelLink} {networkLink}, on {protocolName}</p>
8390
);
8491

92+
let networkIcon = null;
93+
if (networkName && network.avatar) {
94+
const avatarUrl = ContentRepo.getHttpUriForMxc(
95+
MatrixClientPeg.get().getHomeserverUrl(),
96+
network.avatar, 32, 32, "crop",
97+
);
98+
networkIcon = <BaseAvatar width={32} height={32} resizeMethod='crop'
99+
name={ networkName } idName={ networkName }
100+
url={ avatarUrl } />;
101+
}
102+
103+
let channelIcon = null;
104+
if (channel.avatar) {
105+
const avatarUrl = ContentRepo.getHttpUriForMxc(
106+
MatrixClientPeg.get().getHomeserverUrl(),
107+
channel.avatar, 32, 32, "crop",
108+
);
109+
console.log(channel.avatar);
110+
channelIcon = <BaseAvatar width={32} height={32} resizeMethod='crop'
111+
name={ networkName } idName={ networkName }
112+
url={ avatarUrl } />;
113+
}
114+
85115
return (<li key={event.stateKey}>
86116
<div>
87-
<h3>{channelName}{networkName} ({protocolName})</h3>
117+
<h3>{channelIcon} {channelName} {networkName ? ` on ${networkName}` : ""} {networkIcon}</h3>
118+
<p> Connected via {protocolName} </p>
88119
<details>
89120
{status}
90121
{creator}

0 commit comments

Comments
 (0)