Add support for displaying avatars and links in bridge info
parent
2bc6e2e332
commit
9f2ccdf913
|
@ -20,6 +20,8 @@ import {_t} from "../../../../../languageHandler";
|
||||||
import MatrixClientPeg from "../../../../../MatrixClientPeg";
|
import MatrixClientPeg from "../../../../../MatrixClientPeg";
|
||||||
import Pill from "../../../elements/Pill";
|
import Pill from "../../../elements/Pill";
|
||||||
import {makeUserPermalink} from "../../../../../utils/permalinks/Permalinks";
|
import {makeUserPermalink} from "../../../../../utils/permalinks/Permalinks";
|
||||||
|
import BaseAvatar from "../../../avatars/BaseAvatar";
|
||||||
|
import { ContentRepo } from "matrix-js-sdk";
|
||||||
|
|
||||||
const BRIDGE_EVENT_TYPES = [
|
const BRIDGE_EVENT_TYPES = [
|
||||||
"uk.half-shot.bridge",
|
"uk.half-shot.bridge",
|
||||||
|
@ -47,9 +49,10 @@ export default class BridgeSettingsTab extends React.Component {
|
||||||
if (!content || !content.channel || !content.protocol) {
|
if (!content || !content.channel || !content.protocol) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
const { channel, network } = content;
|
||||||
const protocolName = content.protocol.displayname || content.protocol.id;
|
const protocolName = content.protocol.displayname || content.protocol.id;
|
||||||
const channelName = content.channel.displayname || content.channel.id;
|
const channelName = channel.displayname || channel.id;
|
||||||
const networkName = content.network ? " on " + (content.network.displayname || content.network.id) : "";
|
const networkName = network ? network.displayname || network.id : "";
|
||||||
let status = null;
|
let status = null;
|
||||||
if (content.status === "active") {
|
if (content.status === "active") {
|
||||||
status = (<p> Status: <b>Active</b> </p>);
|
status = (<p> Status: <b>Active</b> </p>);
|
||||||
|
@ -78,13 +81,41 @@ export default class BridgeSettingsTab extends React.Component {
|
||||||
/> bot user.</p>
|
/> bot user.</p>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const channelLink = channel.external_url ? (<a target="_blank" href={channel.external_url}>{channelName}</a>) : channelName;
|
||||||
|
const networkLink = network && network.external_url ? (<a target="_blank" href={network.external_url}>{networkName}</a>)
|
||||||
|
: networkName;
|
||||||
|
|
||||||
const chanAndNetworkInfo = (
|
const chanAndNetworkInfo = (
|
||||||
<p> Bridged into {channelName}{networkName}, on {protocolName}</p>
|
<p> Bridged into {channelLink} {networkLink}, on {protocolName}</p>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let networkIcon = null;
|
||||||
|
if (networkName && network.avatar) {
|
||||||
|
const avatarUrl = ContentRepo.getHttpUriForMxc(
|
||||||
|
MatrixClientPeg.get().getHomeserverUrl(),
|
||||||
|
network.avatar, 32, 32, "crop",
|
||||||
|
);
|
||||||
|
networkIcon = <BaseAvatar width={32} height={32} resizeMethod='crop'
|
||||||
|
name={ networkName } idName={ networkName }
|
||||||
|
url={ avatarUrl } />;
|
||||||
|
}
|
||||||
|
|
||||||
|
let channelIcon = null;
|
||||||
|
if (channel.avatar) {
|
||||||
|
const avatarUrl = ContentRepo.getHttpUriForMxc(
|
||||||
|
MatrixClientPeg.get().getHomeserverUrl(),
|
||||||
|
channel.avatar, 32, 32, "crop",
|
||||||
|
);
|
||||||
|
console.log(channel.avatar);
|
||||||
|
channelIcon = <BaseAvatar width={32} height={32} resizeMethod='crop'
|
||||||
|
name={ networkName } idName={ networkName }
|
||||||
|
url={ avatarUrl } />;
|
||||||
|
}
|
||||||
|
|
||||||
return (<li key={event.stateKey}>
|
return (<li key={event.stateKey}>
|
||||||
<div>
|
<div>
|
||||||
<h3>{channelName}{networkName} ({protocolName})</h3>
|
<h3>{channelIcon} {channelName} {networkName ? ` on ${networkName}` : ""} {networkIcon}</h3>
|
||||||
|
<p> Connected via {protocolName} </p>
|
||||||
<details>
|
<details>
|
||||||
{status}
|
{status}
|
||||||
{creator}
|
{creator}
|
||||||
|
|
Loading…
Reference in New Issue