var React = require('react')
var Markdown = require('markdown.jsx')
var Link = require('react-router').Link
var Icon = require('icon.jsx')
var GetIPFS = require('getipfs.jsx')
module.exports = function (boardsAPI) {
return React.createClass({
getInitialState: function () {
return { name: '...', boards: [], api: false }
},
componentDidMount: function () {
boardsAPI.use(boards => {
if (boards.isInit) {
this.setState({ api: boards, id: boards.id })
this.init(boards)
}
var ee = boards.getEventEmitter()
ee.on('init', err => {
if (!err && this.isMounted()) {
this.setState({ api: boards, id: boards.id })
this.init(boards)
}
})
})
},
componentWillReceiveProps: function (nextProps) {
boardsAPI.use(boards => this.downloadProfile(boards, nextProps))
},
downloadProfile: function (boards, props) {
var ee = boards.getEventEmitter()
var uid = props.params.userid
if (uid === 'me') uid = boards.id
ee.on('boards for ' + uid, l => {
var u2id = props.params.userid
if (u2id === 'me') u2id = boards.id
if (!this.isMounted() || u2id !== uid) return true
this.setState({ boards: l })
})
boards.getProfile(uid, (err, res) => {
if (!this.isMounted()) return true
if (err) {
this.setState({
name: