import React from 'react'; import superagent from 'superagent'; import { fromUnixTime, formatDistanceToNow } from "date-fns"; import { Icon, Button, Table, Form, Label } from 'semantic-ui-react' import { renderCompactTitle } from './RoomComponent.jsx'; import constants from '../CloudApi/Constants.js'; export default class RoomsTable extends React.Component { constructor(props) { super(props); this.state = { loadingRooms: false, activeIndex: -1, selectedRoomIndex: 0, statistics: { onlineUserCount: 0, roomCount: 0 }, autoUpdate: true, usersInChannels: 0, lastUpdated: "", }; } renderCompactRoomInfo(room, roomIndex) { const isNSFWRoom = room.category === "NSFW"; const description = _.trim(room.description).length > 0 ? "\"" + room.description + "\"" : `(No description)`; const participantsCount = (room.participantsIndex ? Object.keys(room.participantsIndex).length : 0); const fromNow = formatDistanceToNow(new Date(room.createdAt), { addSuffix: true }); let ownerLink = null; if (room.owner) { ownerLink = {room.owner.socialProfile.username}; } else { ownerLink = (owner); } return ( {renderCompactTitle(room)} {participantsCount === room.size && } {isNSFWRoom && } {!isNSFWRoom && } {ownerLink} {this.props.onUpdateRoom && } {fromNow} ) } renderCompactRoomInfo2(room, roomIndex, environmentOptions) { const name = room.storedRoomSnapshot.name; const isNSFWRoom = room.storedRoomSnapshot.category === "NSFW"; const description = _.trim(room.storedRoomSnapshot.description).length > 0 ? "\"" + room.storedRoomSnapshot.description + "\"" : `(No description)`; const participantsCount = (room.participantsIndex ? Object.keys(room.participantsIndex).length : 0); const size = room.storedRoomSnapshot.maxUsersPerInstance; const fromNow = formatDistanceToNow(new Date(room.createdAt), { addSuffix: true }); const category = room.storedRoomSnapshot.category; let ownerLink = null; if (room.ownerSocialProfile) { ownerLink = {room.ownerSocialProfile.username}; } else { ownerLink = (owner); } let environmentName = room.storedRoomSnapshot.environmentId; if (this.props.environmentOptions) { const environmentOption = this.props.environmentOptions.find((environmentOption) => environmentOption.key === room.environmentId); if (environmentOption) { environmentName = environmentOption.text; } } const environmentLink = ( {environmentName} ) return ( {roomIndex + 1} {renderCompactTitle(room.storedRoomSnapshot, room, this.props.extra)} {participantsCount === size && } {isNSFWRoom && } {!isNSFWRoom && } {environmentLink} {ownerLink} {this.props.onUpdateRoom && } {fromNow} ) } render() { return ( Name Info Environment Owner Category Created {this.props.rooms.map((room, roomIndex) => this.renderCompactRoomInfo2(room, roomIndex))}
); } }