{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/followers/index.js"],"names":["Followers","connect","state","props","isAccount","getIn","params","accountId","accountIds","hasMore","_this","column","scrollTop","e","_e$target","target","scrollHeight","clientHeight","dispatch","expandFollowers","preventDefault","prevRouterProps","_ref","location","mastodonModalOpen","c","componentWillMount","this","fetchAccount","fetchFollowers","componentWillReceiveProps","nextProps","render","_this$props","Object","_babel_runtime_helpers_esm_jsx__WEBPACK_IMPORTED_MODULE_0__","flavours_glitch_features_ui_components_column__WEBPACK_IMPORTED_MODULE_12__","flavours_glitch_components_missing_indicator__WEBPACK_IMPORTED_MODULE_17__","loadMore","flavours_glitch_components_load_more__WEBPACK_IMPORTED_MODULE_15__","onClick","handleLoadMore","react__WEBPACK_IMPORTED_MODULE_4___default","a","createElement","ref","setRef","flavours_glitch_features_account_components_profile_column_header__WEBPACK_IMPORTED_MODULE_13__","handleHeaderClick","react_router_scroll_4__WEBPACK_IMPORTED_MODULE_10__","scrollKey","shouldUpdateScroll","className","onScroll","handleScroll","flavours_glitch_features_account_timeline_containers_header_container__WEBPACK_IMPORTED_MODULE_14__","hideTabs","map","id","flavours_glitch_containers_account_container__WEBPACK_IMPORTED_MODULE_11__","withNote","flavours_glitch_components_loading_indicator__WEBPACK_IMPORTED_MODULE_8__","ImmutablePureComponent","PropTypes","object","isRequired","func","ImmutablePropTypes","list","bool"],"mappings":"+TA0BqBA,EADpBC,kBANuB,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,mNA0BvD,WAClBG,EAAKC,OAAOC,wDAGC,SAACC,GAAM,IAAAC,EAC8BD,EAAEE,OADhCD,EACZF,YADYE,EACDE,aADCF,EACaG,cAEgBP,EAAKP,MAAMM,SAC1DC,EAAKP,MAAMe,SAASC,YAAgBT,EAAKP,MAAMG,OAAOC,0DAIzC,SAACM,GAChBA,EAAEO,iBACFV,EAAKP,MAAMe,SAASC,YAAgBT,EAAKP,MAAMG,OAAOC,8DAGnC,SAACc,EAADC,GAAmC,IAAfC,EAAeD,EAAfC,SACvC,UAAOF,GAAmB,IAAIE,UAAY,IAAIrB,OAAS,IAAIsB,qBAClDD,EAASrB,OAASqB,EAASrB,MAAMsB,yDAGnC,SAAAC,GACPf,EAAKC,OAASc,kDAnChBC,mBAAA,WACEC,KAAKxB,MAAMe,SAASU,YAAaD,KAAKxB,MAAMG,OAAOC,YACnDoB,KAAKxB,MAAMe,SAASW,YAAeF,KAAKxB,MAAMG,OAAOC,eAGvDuB,0BAAA,SAA2BC,GACrBA,EAAUzB,OAAOC,YAAcoB,KAAKxB,MAAMG,OAAOC,WAAawB,EAAUzB,OAAOC,YACjFoB,KAAKxB,MAAMe,SAASU,YAAaG,EAAUzB,OAAOC,YAClDoB,KAAKxB,MAAMe,SAASW,YAAeE,EAAUzB,OAAOC,gBA8BxDyB,OAAA,WAAU,IAAAC,EACmCN,KAAKxB,MAAxCK,EADAyB,EACAzB,WAAYC,EADZwB,EACYxB,QAEpB,IAHQwB,EACqB7B,UAG3B,OACE8B,OAAAC,EAAA,EAAAD,CAACE,EAAA,EAAD,UACEF,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,KAKN,IAAIC,EAAW,KAEf,OAAK9B,GAQDC,IACF6B,EAAWJ,OAAAC,EAAA,EAAAD,CAACK,EAAA,EAAD,CAAUC,QAASb,KAAKc,kBAInCC,EAAAC,EAAAC,cAACR,EAAA,EAAD,CAAQS,IAAKlB,KAAKmB,QAChBZ,OAAAC,EAAA,EAAAD,CAACa,EAAA,EAAD,CAAqBP,QAASb,KAAKqB,oBAEnCd,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAiBC,UAAU,YAAYC,mBAAoBxB,KAAKwB,yBAAhE,EACEjB,OAAAC,EAAA,EAAAD,CAAA,OAAKkB,UAAU,aAAaC,SAAU1B,KAAK2B,mBAA3C,EACEpB,OAAAC,EAAA,EAAAD,CAAA,OAAKkB,UAAU,kBAAf,EACElB,OAAAC,EAAA,EAAAD,CAACqB,EAAA,EAAD,CAAiBhD,UAAWoB,KAAKxB,MAAMG,OAAOC,UAAWiD,UAAQ,IAChEhD,EAAWiD,IAAI,SAAAC,GAAE,OAAIxB,OAAAC,EAAA,EAAAD,CAACyB,EAAA,EAAD,CAA2BD,GAAIA,EAAIE,UAAU,GAAtBF,KAC5CpB,OAnBPJ,OAAAC,EAAA,EAAAD,CAACE,EAAA,EAAD,UACEF,OAAAC,EAAA,EAAAD,CAAC2B,EAAA,EAAD,SAhE6BC,+BAElB,CACjBxD,OAAQyD,IAAUC,OAAOC,WACzB/C,SAAU6C,IAAUG,KAAKD,WACzBzD,WAAY2D,IAAmBC,KAC/B3D,QAASsD,IAAUM,KACnBjE,UAAW2D,IAAUM","file":"flavours/glitch/async/followers.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport LoadingIndicator from 'flavours/glitch/components/loading_indicator';\nimport {\n fetchAccount,\n fetchFollowers,\n expandFollowers,\n} from 'flavours/glitch/actions/accounts';\nimport { ScrollContainer } from 'react-router-scroll-4';\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 LoadMore from 'flavours/glitch/components/load_more';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport MissingIndicator from 'flavours/glitch/components/missing_indicator';\n\nconst mapStateToProps = (state, props) => ({\n isAccount: !!state.getIn(['accounts', props.params.accountId]),\n accountIds: state.getIn(['user_lists', 'followers', props.params.accountId, 'items']),\n hasMore: !!state.getIn(['user_lists', 'followers', props.params.accountId, 'next']),\n});\n\n@connect(mapStateToProps)\nexport default class Followers 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 };\n\n componentWillMount () {\n this.props.dispatch(fetchAccount(this.props.params.accountId));\n this.props.dispatch(fetchFollowers(this.props.params.accountId));\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(fetchFollowers(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(expandFollowers(this.props.params.accountId));\n }\n }\n\n handleLoadMore = (e) => {\n e.preventDefault();\n this.props.dispatch(expandFollowers(this.props.params.accountId));\n }\n\n shouldUpdateScroll = (prevRouterProps, { location }) => {\n if ((((prevRouterProps || {}).location || {}).state || {}).mastodonModalOpen) return false;\n return !(location.state && location.state.mastodonModalOpen);\n }\n\n setRef = c => {\n this.column = c;\n }\n\n render () {\n const { accountIds, hasMore, isAccount } = this.props;\n\n if (!isAccount) {\n return (\n \n \n \n );\n }\n\n let loadMore = null;\n\n if (!accountIds) {\n return (\n \n \n \n );\n }\n\n if (hasMore) {\n loadMore = ;\n }\n\n return (\n \n \n\n \n \n
\n
\n {accountIds.map(id =>
)}\n {loadMore}\n
\n
\n \n \n );\n }\n\n}\n"],"sourceRoot":""}