import React from "react" import * as antd from "antd" import { Icons } from "components/Icons" import { ActionsBar } from "components" import "./index.less" export default class Streams extends React.Component { state = { list: [], } api = window.app.request componentDidMount = async () => { await this.updateStreamsList() } updateStreamsList = async () => { let streams = await this.api.get.streams().catch(error => { console.error(error) antd.message.error(error) return false }) if (streams && Array.isArray(streams)) { // resolve user_id with user basic data streams = streams.map(async (stream) => { const userData = await this.api.get.user(undefined, { _id: stream.user_id }).catch((error) => { console.error(error) antd.message.error(error) return false }) if (userData) { stream.userData = userData } return stream }) streams = await Promise.all(streams) } this.setState({ list: streams }) } onClickItem = (item) => { window.app.setLocation(`/streams/viewer?key=${item}`) } renderListItem = (stream) => { return
this.onClickItem(stream.username)} className="streaming-item" >
{stream.userData.username}

@{stream.userData.username}

#{stream.id}
} render() { return
} onClick={this.updateStreamsList} />
} onClick={() => window.app.setLocation("/streaming_control")} > Control Panel
{ this.state.list.length > 0 ?
{this.state.list.map(this.renderListItem)}
:
}
} }