summaryrefslogtreecommitdiff
path: root/priv/static/packs/flavours/glitch/async/following.js.map
blob: 66ded9c53436a00c902099133707f76b3236d28e (plain)
1
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/following/index.js"],"names":["Following","connect","state","props","isAccount","getIn","params","accountId","accountIds","hasMore","column","scrollTop","e","target","scrollHeight","clientHeight","dispatch","expandFollowing","leading","c","componentWillMount","this","fetchAccount","fetchFollowing","componentWillReceiveProps","nextProps","render","multiColumn","emptyMessage","id","defaultMessage","ref","setRef","onClick","handleHeaderClick","scrollKey","onLoadMore","handleLoadMore","prepend","hideTabs","alwaysPrepend","bindToDocument","map","withNote","ImmutablePureComponent","PropTypes","object","isRequired","func","ImmutablePropTypes","list","bool"],"mappings":"oVA2BMA,EADUC,mBANQ,SAACC,EAAOC,GAAR,MAAmB,CACzCC,YAAaF,EAAMG,MAAM,CAAC,WAAYF,EAAMG,OAAOC,YACnDC,WAAYN,EAAMG,MAAM,CAAC,aAAc,YAAaF,EAAMG,OAAOC,UAAW,UAC5EE,UAAWP,EAAMG,MAAM,CAAC,aAAc,YAAaF,EAAMG,OAAOC,UAAW,Y,yMA6BvD,WAClB,EAAKG,OAAOC,e,2CAGC,SAACC,GAAO,IAAD,EAC8BA,EAAEC,OADhC,EACZF,YADY,EACDG,aADC,EACaC,cAEgB,EAAKZ,MAAMM,SAC1D,EAAKN,MAAMa,SAASC,YAAgB,EAAKd,MAAMG,OAAOC,e,4CAIzC,KAAS,WACxB,EAAKJ,MAAMa,SAASC,YAAgB,EAAKd,MAAMG,OAAOC,cACrD,IAAK,CAAEW,SAAS,K,qCAEV,SAAAC,GACP,EAAKT,OAASS,K,8CA/BhBC,mBAAA,WACOC,KAAKlB,MAAMK,aACda,KAAKlB,MAAMa,SAASM,YAAaD,KAAKlB,MAAMG,OAAOC,YACnDc,KAAKlB,MAAMa,SAASO,YAAeF,KAAKlB,MAAMG,OAAOC,c,EAIzDiB,0BAAA,SAA2BC,GACrBA,EAAUnB,OAAOC,YAAcc,KAAKlB,MAAMG,OAAOC,WAAakB,EAAUnB,OAAOC,YACjFc,KAAKlB,MAAMa,SAASM,YAAaG,EAAUnB,OAAOC,YAClDc,KAAKlB,MAAMa,SAASO,YAAeE,EAAUnB,OAAOC,c,EAwBxDmB,OAAA,WAAW,IAAD,EACgDL,KAAKlB,MAArDK,EADA,EACAA,WAAYC,EADZ,EACYA,QAASL,EADrB,EACqBA,UAAWuB,EADhC,EACgCA,YAExC,IAAKvB,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAKI,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAMoB,EAAe,YAAC,IAAD,CAAkBC,GAAG,wBAAwBC,eAAe,yCAEjF,OACE,kBAAC,IAAD,CAAQC,IAAKV,KAAKW,QAChB,YAAC,IAAD,CAAqBC,QAASZ,KAAKa,kBAAmBP,YAAaA,IAEnE,YAAC,IAAD,CACEQ,UAAU,YACV1B,QAASA,EACT2B,WAAYf,KAAKgB,eACjBC,QAAS,YAAC,IAAD,CAAiB/B,UAAWc,KAAKlB,MAAMG,OAAOC,UAAWgC,UAAQ,IAC1EC,eAAa,EACbZ,aAAcA,EACda,gBAAiBd,QAPnB,EASGnB,EAAWkC,KAAI,SAAAb,GAAE,OAChB,YAAC,IAAD,CAA2BA,GAAIA,EAAIc,UAAU,GAAtBd,S,GAhFXe,K,0BAEH,CACjBtC,OAAQuC,IAAUC,OAAOC,WACzB/B,SAAU6B,IAAUG,KAAKD,WACzBvC,WAAYyC,IAAmBC,KAC/BzC,QAASoC,IAAUM,KACnB/C,UAAWyC,IAAUM,KACrBxB,YAAakB,IAAUM,O","file":"flavours/glitch/async/following.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { debounce } from 'lodash';\nimport LoadingIndicator from 'flavours/glitch/components/loading_indicator';\nimport {\n  fetchAccount,\n  fetchFollowing,\n  expandFollowing,\n} from 'flavours/glitch/actions/accounts';\nimport { FormattedMessage } from 'react-intl';\nimport AccountContainer from 'flavours/glitch/containers/account_container';\nimport Column from 'flavours/glitch/features/ui/components/column';\nimport ProfileColumnHeader from 'flavours/glitch/features/account/components/profile_column_header';\nimport HeaderContainer from 'flavours/glitch/features/account_timeline/containers/header_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport MissingIndicator from 'flavours/glitch/components/missing_indicator';\nimport ScrollableList from 'flavours/glitch/components/scrollable_list';\n\nconst mapStateToProps = (state, props) => ({\n  isAccount: !!state.getIn(['accounts', props.params.accountId]),\n  accountIds: state.getIn(['user_lists', 'following', props.params.accountId, 'items']),\n  hasMore: !!state.getIn(['user_lists', 'following', props.params.accountId, 'next']),\n});\n\nexport default @connect(mapStateToProps)\nclass Following extends ImmutablePureComponent {\n\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    dispatch: PropTypes.func.isRequired,\n    accountIds: ImmutablePropTypes.list,\n    hasMore: PropTypes.bool,\n    isAccount: PropTypes.bool,\n    multiColumn: PropTypes.bool,\n  };\n\n  componentWillMount () {\n    if (!this.props.accountIds) {\n      this.props.dispatch(fetchAccount(this.props.params.accountId));\n      this.props.dispatch(fetchFollowing(this.props.params.accountId));\n    }\n  }\n\n  componentWillReceiveProps (nextProps) {\n    if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {\n      this.props.dispatch(fetchAccount(nextProps.params.accountId));\n      this.props.dispatch(fetchFollowing(nextProps.params.accountId));\n    }\n  }\n\n  handleHeaderClick = () => {\n    this.column.scrollTop();\n  }\n\n  handleScroll = (e) => {\n    const { scrollTop, scrollHeight, clientHeight } = e.target;\n\n    if (scrollTop === scrollHeight - clientHeight && this.props.hasMore) {\n      this.props.dispatch(expandFollowing(this.props.params.accountId));\n    }\n  }\n\n  handleLoadMore = debounce(() => {\n    this.props.dispatch(expandFollowing(this.props.params.accountId));\n  }, 300, { leading: true });\n\n  setRef = c => {\n    this.column = c;\n  }\n\n  render () {\n    const { accountIds, hasMore, isAccount, multiColumn } = this.props;\n\n    if (!isAccount) {\n      return (\n        <Column>\n          <MissingIndicator />\n        </Column>\n      );\n    }\n\n    if (!accountIds) {\n      return (\n        <Column>\n          <LoadingIndicator />\n        </Column>\n      );\n    }\n\n    const emptyMessage = <FormattedMessage id='account.follows.empty' defaultMessage=\"This user doesn't follow anyone yet.\" />;\n\n    return (\n      <Column ref={this.setRef}>\n        <ProfileColumnHeader onClick={this.handleHeaderClick} multiColumn={multiColumn} />\n\n        <ScrollableList\n          scrollKey='following'\n          hasMore={hasMore}\n          onLoadMore={this.handleLoadMore}\n          prepend={<HeaderContainer accountId={this.props.params.accountId} hideTabs />}\n          alwaysPrepend\n          emptyMessage={emptyMessage}\n          bindToDocument={!multiColumn}\n        >\n          {accountIds.map(id =>\n            <AccountContainer key={id} id={id} withNote={false} />\n          )}\n        </ScrollableList>\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}