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))}
);
}
}