diff options
Diffstat (limited to 'app/assets/javascripts/components/features/account_timeline/index.jsx')
-rw-r--r-- | app/assets/javascripts/components/features/account_timeline/index.jsx | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/app/assets/javascripts/components/features/account_timeline/index.jsx b/app/assets/javascripts/components/features/account_timeline/index.jsx index edae976b9..4987a2364 100644 --- a/app/assets/javascripts/components/features/account_timeline/index.jsx +++ b/app/assets/javascripts/components/features/account_timeline/index.jsx @@ -1,6 +1,6 @@ import { connect } from 'react-redux'; -import PureRenderMixin from 'react-addons-pure-render-mixin'; import ImmutablePropTypes from 'react-immutable-proptypes'; +import PropTypes from 'prop-types'; import { fetchAccount, fetchAccountTimeline, @@ -20,36 +20,30 @@ const mapStateToProps = (state, props) => ({ me: state.getIn(['meta', 'me']) }); -const AccountTimeline = React.createClass({ +class AccountTimeline extends React.PureComponent { - propTypes: { - params: React.PropTypes.object.isRequired, - dispatch: React.PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list, - isLoading: React.PropTypes.bool, - hasMore: React.PropTypes.bool, - me: React.PropTypes.number.isRequired - }, - - mixins: [PureRenderMixin], + constructor (props, context) { + super(props, context); + this.handleScrollToBottom = this.handleScrollToBottom.bind(this); + } componentWillMount () { this.props.dispatch(fetchAccount(Number(this.props.params.accountId))); this.props.dispatch(fetchAccountTimeline(Number(this.props.params.accountId))); - }, + } componentWillReceiveProps(nextProps) { if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) { this.props.dispatch(fetchAccount(Number(nextProps.params.accountId))); this.props.dispatch(fetchAccountTimeline(Number(nextProps.params.accountId))); } - }, + } handleScrollToBottom () { if (!this.props.isLoading && this.props.hasMore) { this.props.dispatch(expandAccountTimeline(Number(this.props.params.accountId))); } - }, + } render () { const { statusIds, isLoading, hasMore, me } = this.props; @@ -78,6 +72,15 @@ const AccountTimeline = React.createClass({ ); } -}); +} + +AccountTimeline.propTypes = { + params: PropTypes.object.isRequired, + dispatch: PropTypes.func.isRequired, + statusIds: ImmutablePropTypes.list, + isLoading: PropTypes.bool, + hasMore: PropTypes.bool, + me: PropTypes.number.isRequired +}; export default connect(mapStateToProps)(AccountTimeline); |