var React = require('react') var Markdown = require('markdown.jsx') var UserID = require('userID.jsx') var PostList = require('postlist.jsx') var GetIPFS = require('getipfs.jsx') var Link = require('react-router').Link var Icon = require('icon.jsx') var {Loading} = require('status-components.jsx') module.exports = function (boardsAPI) { return React.createClass({ getInitialState () { return { loading: true, whitelist: [] } }, componentDidMount () { boardsAPI.use(boards => { if (!this.isMounted()) return var ee = boards.getEventEmitter() ee.on('init', err => { if (!err && this.isMounted()) { this.init(boards) } }) if (this.props.params.userid) { ee.on('whitelist for ' + this.props.params.boardname + '@' + this.props.params.userid, (whitelist) => { if (this.isMounted()) { this.setState({ whitelist }) } else return true }) ee.on('settings for ' + this.props.params.boardname + '@' + this.props.params.userid, (res) => { if (!this.isMounted()) return true if (res) this.setState({ loading: false, name: res.fullname, description: res.description }) }) } else { this.setState({ loading: false, description: 'All the messages posted in __#' + this.props.params.boardname + '__' }) } if (boards.isInit || this.state.api) { this.init(boards) } }) }, componentWillReceiveProps (props) { boardsAPI.use(b => this.init(b, props)) }, init (boards, newProps) { var props = newProps || this.props if (!props.params.userid) return boards.getBoardSettings(props.params.userid, props.params.boardname) this.setState({ loading: true, init: true, api: true, userid: boards.getMyID(), boards: boards }) }, toolbox () { return