Convert Bridge Settings Tab to Typescript

This commit is contained in:
Michael Telatynski 2020-08-08 11:38:57 +01:00
parent f784500b1c
commit 5c0d332e9d

View file

@ -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 {