diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-01-30 21:40:55 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-01-30 21:44:11 +0100 |
commit | f21e7d6ac06556671c2663ce2879442c60230b32 (patch) | |
tree | 68260b8383038daf6f315093064a2dbdd7b3944b /app/assets/javascripts/components/features/account | |
parent | a2a85e85491110461cbc938abd0f2687f0e51612 (diff) |
Make profile header scroll along with contents. AccountTimeline, Followers and Following are no longer
nested inside a common parent (<Account>), instead they all embed <HeaderContainer />
Diffstat (limited to 'app/assets/javascripts/components/features/account')
-rw-r--r-- | app/assets/javascripts/components/features/account/index.jsx | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/app/assets/javascripts/components/features/account/index.jsx b/app/assets/javascripts/components/features/account/index.jsx deleted file mode 100644 index 3a9b48f21..000000000 --- a/app/assets/javascripts/components/features/account/index.jsx +++ /dev/null @@ -1,109 +0,0 @@ -import { connect } from 'react-redux'; -import PureRenderMixin from 'react-addons-pure-render-mixin'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { - fetchAccount, - followAccount, - unfollowAccount, - blockAccount, - unblockAccount, - fetchAccountTimeline, - expandAccountTimeline -} from '../../actions/accounts'; -import { mentionCompose } from '../../actions/compose'; -import Header from './components/header'; -import { - getAccountTimeline, - makeGetAccount -} from '../../selectors'; -import LoadingIndicator from '../../components/loading_indicator'; -import ActionBar from './components/action_bar'; -import Column from '../ui/components/column'; -import ColumnBackButton from '../../components/column_back_button'; -import { isMobile } from '../../is_mobile' - -const makeMapStateToProps = () => { - const getAccount = makeGetAccount(); - - const mapStateToProps = (state, props) => ({ - account: getAccount(state, Number(props.params.accountId)), - me: state.getIn(['meta', 'me']) - }); - - return mapStateToProps; -}; - -const Account = React.createClass({ - - contextTypes: { - router: React.PropTypes.object - }, - - propTypes: { - params: React.PropTypes.object.isRequired, - dispatch: React.PropTypes.func.isRequired, - account: ImmutablePropTypes.map, - me: React.PropTypes.number.isRequired, - children: React.PropTypes.node - }, - - mixins: [PureRenderMixin], - - componentWillMount () { - this.props.dispatch(fetchAccount(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))); - } - }, - - handleFollow () { - if (this.props.account.getIn(['relationship', 'following'])) { - this.props.dispatch(unfollowAccount(this.props.account.get('id'))); - } else { - this.props.dispatch(followAccount(this.props.account.get('id'))); - } - }, - - handleBlock () { - if (this.props.account.getIn(['relationship', 'blocking'])) { - this.props.dispatch(unblockAccount(this.props.account.get('id'))); - } else { - this.props.dispatch(blockAccount(this.props.account.get('id'))); - } - }, - - handleMention () { - this.props.dispatch(mentionCompose(this.props.account)); - if (isMobile(window.innerWidth)) { - this.context.router.push('/statuses/new'); - } - }, - - render () { - const { account, me } = this.props; - - if (account === null) { - return ( - <Column> - <LoadingIndicator /> - </Column> - ); - } - - return ( - <Column> - <ColumnBackButton /> - <Header account={account} me={me} onFollow={this.handleFollow} /> - <ActionBar account={account} me={me} onBlock={this.handleBlock} onMention={this.handleMention} /> - - {this.props.children} - </Column> - ); - } - -}); - -export default connect(makeMapStateToProps)(Account); |