synapse-admin/src/features/room-admin/List.js
Manuel Stahl a997374a03 Show alias and topic in room-admin/List
Change-Id: I93a3e95891d1628d73d28388c2d680079276076e
2019-08-27 14:41:24 +02:00

72 lines
2.9 KiB
JavaScript

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom'
import { Table, TableBody, TableCell, TableHead, TableRow } from '@material-ui/core';
import * as actions from './redux/actions';
export class List extends Component {
static propTypes = {
roomAdmin: PropTypes.object.isRequired,
actions: PropTypes.object.isRequired,
};
componentDidMount() {
const { fetchPublicRooms } = this.props.actions;
fetchPublicRooms();
}
render() {
const { mtx } = this.props;
const { roomList, fetchRoomsPending } = this.props.roomAdmin;
return (
<div className="room-admin-list">
{(!mtx || !mtx.clientRunning) && <Redirect to="/" />}
{fetchRoomsPending && <img alt="logging in" src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" />}
<Table className="room-list">
<TableHead>
<TableRow>
<TableCell>Alias</TableCell>
<TableCell>Name</TableCell>
<TableCell>Topic</TableCell>
<TableCell>Room-ID</TableCell>
<TableCell>Members</TableCell>
</TableRow>
</TableHead>
<TableBody>
{roomList.map(item => (<TableRow key={item.room_id}>
<TableCell>{item.canonical_alias}</TableCell>
<TableCell>{item.name}</TableCell>
<TableCell>{item.topic}</TableCell>
<TableCell>{item.room_id}</TableCell>
<TableCell>{item.num_joined_members}</TableCell>
</TableRow>))}
</TableBody>
</Table>
</div>
);
}
}
/* istanbul ignore next */
function mapStateToProps(state) {
return {
mtx: state.common.mtx,
roomAdmin: state.roomAdmin,
};
}
/* istanbul ignore next */
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators({ ...actions }, dispatch)
};
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(List);