Convert Bridge Settings Tab to Typescript
This commit is contained in:
parent
f784500b1c
commit
5c0d332e9d
1 changed files with 16 additions and 17 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,10 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React from "react";
|
||||||
import PropTypes from 'prop-types';
|
import {Room} from "matrix-js-sdk/src/models/room";
|
||||||
|
import {MatrixEvent} from "matrix-js-sdk/src/models/event";
|
||||||
|
|
||||||
import {_t} from "../../../../../languageHandler";
|
import {_t} from "../../../../../languageHandler";
|
||||||
import {MatrixClientPeg} from "../../../../../MatrixClientPeg";
|
import {MatrixClientPeg} from "../../../../../MatrixClientPeg";
|
||||||
import BridgeTile from "../../BridgeTile";
|
import BridgeTile from "../../BridgeTile";
|
||||||
|
@ -27,28 +29,26 @@ const BRIDGE_EVENT_TYPES = [
|
||||||
|
|
||||||
const BRIDGES_LINK = "https://matrix.org/bridges/";
|
const BRIDGES_LINK = "https://matrix.org/bridges/";
|
||||||
|
|
||||||
export default class BridgeSettingsTab extends React.Component {
|
interface IProps {
|
||||||
static propTypes = {
|
roomId: string;
|
||||||
roomId: PropTypes.string.isRequired,
|
}
|
||||||
};
|
|
||||||
|
|
||||||
_renderBridgeCard(event, room) {
|
export default class BridgeSettingsTab extends React.Component<IProps> {
|
||||||
|
private renderBridgeCard(event: MatrixEvent, room: Room) {
|
||||||
const content = event.getContent();
|
const content = event.getContent();
|
||||||
if (!content || !content.channel || !content.protocol) {
|
if (!content || !content.channel || !content.protocol) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return <BridgeTile key={event.getId()} room={room} ev={event}></BridgeTile>;
|
return <BridgeTile key={event.getId()} room={room} ev={event} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
static getBridgeStateEvents(roomId) {
|
static getBridgeStateEvents(roomId: string) {
|
||||||
const client = MatrixClientPeg.get();
|
const client = MatrixClientPeg.get();
|
||||||
const roomState = (client.getRoom(roomId)).currentState;
|
const roomState = client.getRoom(roomId).currentState;
|
||||||
|
|
||||||
const bridgeEvents = [].concat(...BRIDGE_EVENT_TYPES.map((typeName) =>
|
return [].concat(...BRIDGE_EVENT_TYPES.map((typeName) =>
|
||||||
Array.from(roomState.events.get(typeName).values()),
|
Array.from(roomState.events.get(typeName).values()),
|
||||||
));
|
));
|
||||||
|
|
||||||
return bridgeEvents;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
@ -58,8 +58,7 @@ export default class BridgeSettingsTab extends React.Component {
|
||||||
const client = MatrixClientPeg.get();
|
const client = MatrixClientPeg.get();
|
||||||
const room = client.getRoom(this.props.roomId);
|
const room = client.getRoom(this.props.roomId);
|
||||||
|
|
||||||
let content = null;
|
let content: JSX.Element;
|
||||||
|
|
||||||
if (bridgeEvents.length > 0) {
|
if (bridgeEvents.length > 0) {
|
||||||
content = <div>
|
content = <div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
|
@ -72,7 +71,7 @@ export default class BridgeSettingsTab extends React.Component {
|
||||||
},
|
},
|
||||||
)}</p>
|
)}</p>
|
||||||
<ul className="mx_RoomSettingsDialog_BridgeList">
|
<ul className="mx_RoomSettingsDialog_BridgeList">
|
||||||
{ bridgeEvents.map((event) => this._renderBridgeCard(event, room)) }
|
{ bridgeEvents.map((event) => this.renderBridgeCard(event, room)) }
|
||||||
</ul>
|
</ul>
|
||||||
</div>;
|
</div>;
|
||||||
} else {
|
} else {
|
Loading…
Reference in a new issue