import React, {Component} from 'react'; import {connect} from 'react-redux'; import {saveBio, fetchCommentsByUserId} from 'coral-framework/actions/user'; import {link} from 'coral-framework/PymConnection'; import BioContainer from './BioContainer'; import NotLoggedIn from '../components/NotLoggedIn'; import {TabBar, Tab, TabContent} from '../../coral-ui'; import CommentHistory from 'coral-plugin-history/CommentHistory'; import SettingsHeader from '../components/SettingsHeader'; import RestrictedContent from 'coral-framework/components/RestrictedContent'; import I18n from 'coral-framework/modules/i18n/i18n'; import translations from '../translations'; const lang = new I18n(translations); class SettingsContainer extends Component { constructor (props) { super(props); this.state = { activeTab: 0, }; this.handleTabChange = this.handleTabChange.bind(this); } componentWillMount () { // Fetch commentHistory this.props.fetchCommentsByUserId(this.props.userData.id); } handleTabChange(tab) { this.setState({ activeTab: tab }); } render() { const {loggedIn, userData, showSignInDialog, items, user} = this.props; const {activeTab} = this.state; const commentsMostRecentFirst = user .myComments.map(id => items.comments[id]) .sort(({created_at:a}, {created_at:b}) => { // descending order, created_at // js date strings can be sorted lexigraphically. const aLessThanB = a < b ? 1 : 0; return a > b ? -1 : aLessThanB; }); return ( }> All Comments ({user.myComments.length}) Profile Settings { user.myComments.length && user.myAssets.length ? items.assets[id])} /> :

{lang.t('user-no-comment')}

}
); } } const mapStateToProps = state => ({ items: state.items.toJS(), user: state.user.toJS() }); const mapDispatchToProps = dispatch => ({ saveBio: (user_id, formData) => dispatch(saveBio(user_id, formData)), fetchCommentsByUserId: userId => dispatch(fetchCommentsByUserId(userId)) }); export default connect( mapStateToProps, mapDispatchToProps )(SettingsContainer);