{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/account_timeline/index.js"],"names":["AccountTimeline","connect","state","accountId","params","withReplies","path","isAccount","getIn","statusIds","ImmutableList","featuredStatusIds","isLoading","hasMore","column","scrollTop","maxId","props","dispatch","expandAccountTimeline","c","componentWillMount","this","fetchAccount","fetchAccountIdentityProofs","expandAccountFeaturedTimeline","componentWillReceiveProps","nextProps","render","multiColumn","ref","setRef","name","onClick","handleHeaderClick","prepend","alwaysPrepend","scrollKey","onLoadMore","handleLoadMore","emptyMessage","id","defaultMessage","bindToDocument","ImmutablePureComponent","PropTypes","object","isRequired","func","ImmutablePropTypes","list","bool"],"mappings":"4VA+BMA,EADUC,mBAZQ,SAACC,EAAD,GAA4D,IAAxCC,EAAuC,EAAjDC,OAAUD,UAAuC,IAA1BE,mBAA0B,SAC3EC,EAAOD,EAAiBF,EAAN,gBAAiCA,EAEzD,MAAO,CACLI,YAAaL,EAAMM,MAAM,CAAC,WAAYL,IACtCM,UAAWP,EAAMM,MAAM,CAAC,YAAD,WAAyBF,EAAQ,SAAUI,kBAClEC,kBAAmBN,EAAcK,iBAAkBR,EAAMM,MAAM,CAAC,YAAD,WAAyBL,EAAzB,UAA6C,SAAUO,kBACtHE,UAAWV,EAAMM,MAAM,CAAC,YAAD,WAAyBF,EAAQ,cACxDO,QAAWX,EAAMM,MAAM,CAAC,YAAD,WAAyBF,EAAQ,e,yMAyCtC,WAClB,EAAKQ,OAAOC,e,6CAGG,SAAAC,GACf,EAAKC,MAAMC,SAASC,YAAsB,EAAKF,MAAMb,OAAOD,UAAW,CAAEa,QAAOX,YAAa,EAAKY,MAAMZ,kB,qCAGjG,SAAAe,GACP,EAAKN,OAASM,K,8CA/BhBC,mBAAA,WAAuB,IAAD,EAC2BC,KAAKL,MAAlCd,EADE,EACZC,OAAUD,UAAaE,EADX,EACWA,YAE/BiB,KAAKL,MAAMC,SAASK,YAAapB,IACjCmB,KAAKL,MAAMC,SAASM,YAA2BrB,IAC1CE,GACHiB,KAAKL,MAAMC,SAASO,YAA8BtB,IAEpDmB,KAAKL,MAAMC,SAASC,YAAsBhB,EAAW,CAAEE,kB,EAGzDqB,0BAAA,SAA2BC,IACpBA,EAAUvB,OAAOD,YAAcmB,KAAKL,MAAMb,OAAOD,WAAawB,EAAUvB,OAAOD,WAAcwB,EAAUtB,cAAgBiB,KAAKL,MAAMZ,eACrIiB,KAAKL,MAAMC,SAASK,YAAaI,EAAUvB,OAAOD,YAClDmB,KAAKL,MAAMC,SAASM,YAA2BG,EAAUvB,OAAOD,YAC3DwB,EAAUtB,aACbiB,KAAKL,MAAMC,SAASO,YAA8BE,EAAUvB,OAAOD,YAErEmB,KAAKL,MAAMC,SAASC,YAAsBQ,EAAUvB,OAAOD,UAAW,CAAEE,YAAasB,EAAUvB,OAAOC,iB,EAgB1GuB,OAAA,WAAW,IAAD,EAC6EN,KAAKL,MAAlFR,EADA,EACAA,UAAWE,EADX,EACWA,kBAAmBC,EAD9B,EAC8BA,UAAWC,EADzC,EACyCA,QAASN,EADlD,EACkDA,UAAWsB,EAD7D,EAC6DA,YAErE,OAAKtB,GASAE,GAAaG,EAEd,YAAC,IAAD,UACE,YAAC,IAAD,KAMJ,kBAAC,IAAD,CAAQkB,IAAKR,KAAKS,OAAQC,KAAK,WAC7B,YAAC,IAAD,CAAqBC,QAASX,KAAKY,kBAAmBL,YAAaA,IAEnE,YAAC,IAAD,CACEM,QAAS,YAAC,IAAD,CAAiBhC,UAAWmB,KAAKL,MAAMb,OAAOD,YACvDiC,eAAa,EACbC,UAAU,mBACV5B,UAAWA,EACXE,kBAAmBA,EACnBC,UAAWA,EACXC,QAASA,EACTyB,WAAYhB,KAAKiB,eACjBC,aAAc,YAAC,IAAD,CAAkBC,GAAG,gCAAgCC,eAAe,mBAClFC,gBAAiBd,KA7BnB,YAAC,IAAD,UACE,YAAC,IAAD,CAAkBA,YAAaA,IAC/B,YAAC,IAAD,M,GAvDoBe,K,0BAET,CACjBxC,OAAQyC,IAAUC,OAAOC,WACzB7B,SAAU2B,IAAUG,KAAKD,WACzBtC,UAAWwC,IAAmBC,KAC9BvC,kBAAmBsC,IAAmBC,KACtCtC,UAAWiC,IAAUM,KACrBtC,QAASgC,IAAUM,KACnB9C,YAAawC,IAAUM,KACvB5C,UAAWsC,IAAUM,KACrBtB,YAAagB,IAAUM,O","file":"flavours/glitch/async/account_timeline.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { fetchAccount } from 'flavours/glitch/actions/accounts';\nimport { expandAccountFeaturedTimeline, expandAccountTimeline } from 'flavours/glitch/actions/timelines';\nimport StatusList from '../../components/status_list';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ProfileColumnHeader from 'flavours/glitch/features/account/components/profile_column_header';\nimport HeaderContainer from './containers/header_container';\nimport ColumnBackButton from 'flavours/glitch/components/column_back_button';\nimport { List as ImmutableList } from 'immutable';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { FormattedMessage } from 'react-intl';\nimport { fetchAccountIdentityProofs } from '../../actions/identity_proofs';\nimport MissingIndicator from 'flavours/glitch/components/missing_indicator';\n\nconst mapStateToProps = (state, { params: { accountId }, withReplies = false }) => {\n  const path = withReplies ? `${accountId}:with_replies` : accountId;\n\n  return {\n    isAccount: !!state.getIn(['accounts', accountId]),\n    statusIds: state.getIn(['timelines', `account:${path}`, 'items'], ImmutableList()),\n    featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()),\n    isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),\n    hasMore:   state.getIn(['timelines', `account:${path}`, 'hasMore']),\n  };\n};\n\nexport default @connect(mapStateToProps)\nclass AccountTimeline extends ImmutablePureComponent {\n\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    dispatch: PropTypes.func.isRequired,\n    statusIds: ImmutablePropTypes.list,\n    featuredStatusIds: ImmutablePropTypes.list,\n    isLoading: PropTypes.bool,\n    hasMore: PropTypes.bool,\n    withReplies: PropTypes.bool,\n    isAccount: PropTypes.bool,\n    multiColumn: PropTypes.bool,\n  };\n\n  componentWillMount () {\n    const { params: { accountId }, withReplies } = this.props;\n\n    this.props.dispatch(fetchAccount(accountId));\n    this.props.dispatch(fetchAccountIdentityProofs(accountId));\n    if (!withReplies) {\n      this.props.dispatch(expandAccountFeaturedTimeline(accountId));\n    }\n    this.props.dispatch(expandAccountTimeline(accountId, { withReplies }));\n  }\n\n  componentWillReceiveProps (nextProps) {\n    if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) {\n      this.props.dispatch(fetchAccount(nextProps.params.accountId));\n      this.props.dispatch(fetchAccountIdentityProofs(nextProps.params.accountId));\n      if (!nextProps.withReplies) {\n        this.props.dispatch(expandAccountFeaturedTimeline(nextProps.params.accountId));\n      }\n      this.props.dispatch(expandAccountTimeline(nextProps.params.accountId, { withReplies: nextProps.params.withReplies }));\n    }\n  }\n\n  handleHeaderClick = () => {\n    this.column.scrollTop();\n  }\n\n  handleLoadMore = maxId => {\n    this.props.dispatch(expandAccountTimeline(this.props.params.accountId, { maxId, withReplies: this.props.withReplies }));\n  }\n\n  setRef = c => {\n    this.column = c;\n  }\n\n  render () {\n    const { statusIds, featuredStatusIds, isLoading, hasMore, isAccount, multiColumn } = this.props;\n\n    if (!isAccount) {\n      return (\n        <Column>\n          <ColumnBackButton multiColumn={multiColumn} />\n          <MissingIndicator />\n        </Column>\n      );\n    }\n\n    if (!statusIds && isLoading) {\n      return (\n        <Column>\n          <LoadingIndicator />\n        </Column>\n      );\n    }\n\n    return (\n      <Column ref={this.setRef} name='account'>\n        <ProfileColumnHeader onClick={this.handleHeaderClick} multiColumn={multiColumn} />\n\n        <StatusList\n          prepend={<HeaderContainer accountId={this.props.params.accountId} />}\n          alwaysPrepend\n          scrollKey='account_timeline'\n          statusIds={statusIds}\n          featuredStatusIds={featuredStatusIds}\n          isLoading={isLoading}\n          hasMore={hasMore}\n          onLoadMore={this.handleLoadMore}\n          emptyMessage={<FormattedMessage id='empty_column.account_timeline' defaultMessage='No toots here!' />}\n          bindToDocument={!multiColumn}\n        />\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}