{"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":""}