{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/favourited_statuses/index.jsx"],"names":["messages","defineMessages","heading","id","defaultMessage","Favourites","ImmutablePureComponent","constructor","arguments","_defineProperty","columnId","dispatch","this","props","removeColumn","addColumn","dir","moveColumn","column","scrollTop","c","_debounce","expandFavouritedStatuses","leading","UNSAFE_componentWillMount","fetchFavouritedStatuses","render","intl","statusIds","multiColumn","hasMore","isLoading","pinned","emptyMessage","_jsx","FormattedMessage","_jsxs","Column","bindToDocument","ref","setRef","label","formatMessage","children","ColumnHeader","icon","iconComponent","StarIcon","title","onPin","handlePin","onMove","handleMove","onClick","handleHeaderClick","StatusList","trackScroll","scrollKey","onLoadMore","handleLoadMore","timelineId","Helmet","name","content","PropTypes","func","isRequired","ImmutablePropTypes","list","object","string","bool","connect","state","getStatusList","getIn","injectIntl"],"mappings":"8RAoBA,MAAMA,EAAWC,YAAe,CAC9BC,QAAS,CAAEC,GAAG,oBAAsBC,eAAe,eASrD,MAAMC,UAAmBC,IAAuBC,cAAA,SAAAC,WAAAC,YAAA,kBAgBlC,KACV,MAAM,SAAEC,EAAQ,SAAEC,GAAaC,KAAKC,MAGlCF,EADED,EACOI,YAAaJ,GAEbK,YAAU,aAAc,CAAC,GACpC,IACDN,YAAA,mBAEaO,IACZ,MAAM,SAAEN,EAAQ,SAAEC,GAAaC,KAAKC,MACpCF,EAASM,YAAWP,EAAUM,GAAK,IACpCP,YAAA,0BAEmB,KAClBG,KAAKM,OAAOC,WAAW,IACxBV,YAAA,eAEQW,IACPR,KAAKM,OAASE,CAAC,IAChBX,YAAA,sBAEgBY,KAAS,KACxBT,KAAKC,MAAMF,SAASW,cAA2B,GAC9C,IAAK,CAAEC,SAAS,IAAO,CA7B1BC,4BACEZ,KAAKC,MAAMF,SAASc,cACtB,CA6BAC,SACE,MAAM,KAAEC,EAAI,UAAEC,EAAS,SAAElB,EAAQ,YAAEmB,EAAW,QAAEC,EAAO,UAAEC,GAAcnB,KAAKC,MACtEmB,IAAWtB,EAEXuB,EAAeC,YAACC,IAAgB,CAAChC,GAAE,mCAAoCC,eAAe,wFAE5F,OACEgC,eAACC,IAAM,CAACC,gBAAiBT,EAAaU,IAAK3B,KAAK4B,OAAQC,MAAOd,EAAKe,cAAc1C,EAASE,SAASyC,SAAA,CAClGT,YAACU,IAAY,CACXC,KAAK,OACLC,cAAeC,IACfC,MAAOrB,EAAKe,cAAc1C,EAASE,SACnC+C,MAAOrC,KAAKsC,UACZC,OAAQvC,KAAKwC,WACbC,QAASzC,KAAK0C,kBACdtB,OAAQA,EACRH,YAAaA,IAGfK,YAACqB,IAAU,CACTC,aAAcxB,EACdJ,UAAWA,EACX6B,UAAW,uBAAuB/C,IAClCoB,QAASA,EACTC,UAAWA,EACX2B,WAAY9C,KAAK+C,eACjB1B,aAAcA,EACdK,gBAAiBT,EACjB+B,WAAW,eAGb1B,YAAC2B,IAAM,UACL3B,YAAA,kBAAQP,EAAKe,cAAc1C,EAASE,UACpCgC,YAAA,QAAM4B,KAAK,SAASC,QAAQ,eAIpC,EAEDtD,YAlFKJ,EAAU,YAEK,CACjBM,SAAUqD,IAAUC,KAAKC,WACzBtC,UAAWuC,IAAmBC,KAAKF,WACnCvC,KAAMqC,IAAUK,OAAOH,WACvBxD,SAAUsD,IAAUM,OACpBzC,YAAamC,IAAUO,KACvBzC,QAASkC,IAAUO,KACnBxC,UAAWiC,IAAUO,OA2EVC,6BA1FSC,IAAK,CAC3B7C,UAAW8C,YAAcD,EAAO,cAChC1C,UAAW0C,EAAME,MAAM,CAAC,eAAgB,aAAc,cAAc,GACpE7C,UAAW2C,EAAME,MAAM,CAAC,eAAgB,aAAc,YAuFzCH,CAAyBI,YAAWvE,G","file":"js/features/favourited_statuses-3513e044f923da335028.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\n\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\n\nimport { Helmet } from 'react-helmet';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { connect } from 'react-redux';\n\nimport { debounce } from 'lodash';\n\nimport StarIcon from '@/material-icons/400-24px/star-fill.svg?react';\nimport { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns';\nimport { fetchFavouritedStatuses, expandFavouritedStatuses } from 'mastodon/actions/favourites';\nimport ColumnHeader from 'mastodon/components/column_header';\nimport StatusList from 'mastodon/components/status_list';\nimport Column from 'mastodon/features/ui/components/column';\nimport { getStatusList } from 'mastodon/selectors';\n\nconst messages = defineMessages({\n heading: { id: 'column.favourites', defaultMessage: 'Favorites' },\n});\n\nconst mapStateToProps = state => ({\n statusIds: getStatusList(state, 'favourites'),\n isLoading: state.getIn(['status_lists', 'favourites', 'isLoading'], true),\n hasMore: !!state.getIn(['status_lists', 'favourites', 'next']),\n});\n\nclass Favourites extends ImmutablePureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n statusIds: ImmutablePropTypes.list.isRequired,\n intl: PropTypes.object.isRequired,\n columnId: PropTypes.string,\n multiColumn: PropTypes.bool,\n hasMore: PropTypes.bool,\n isLoading: PropTypes.bool,\n };\n\n UNSAFE_componentWillMount () {\n this.props.dispatch(fetchFavouritedStatuses());\n }\n\n handlePin = () => {\n const { columnId, dispatch } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('FAVOURITES', {}));\n }\n };\n\n handleMove = (dir) => {\n const { columnId, dispatch } = this.props;\n dispatch(moveColumn(columnId, dir));\n };\n\n handleHeaderClick = () => {\n this.column.scrollTop();\n };\n\n setRef = c => {\n this.column = c;\n };\n\n handleLoadMore = debounce(() => {\n this.props.dispatch(expandFavouritedStatuses());\n }, 300, { leading: true });\n\n render () {\n const { intl, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;\n const pinned = !!columnId;\n\n const emptyMessage = <FormattedMessage id='empty_column.favourited_statuses' defaultMessage=\"You don't have any favorite posts yet. When you favorite one, it will show up here.\" />;\n\n return (\n <Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.heading)}>\n <ColumnHeader\n icon='star'\n iconComponent={StarIcon}\n title={intl.formatMessage(messages.heading)}\n onPin={this.handlePin}\n onMove={this.handleMove}\n onClick={this.handleHeaderClick}\n pinned={pinned}\n multiColumn={multiColumn}\n />\n\n <StatusList\n trackScroll={!pinned}\n statusIds={statusIds}\n scrollKey={`favourited_statuses-${columnId}`}\n hasMore={hasMore}\n isLoading={isLoading}\n onLoadMore={this.handleLoadMore}\n emptyMessage={emptyMessage}\n bindToDocument={!multiColumn}\n timelineId='favourites'\n />\n\n <Helmet>\n <title>{intl.formatMessage(messages.heading)}</title>\n <meta name='robots' content='noindex' />\n </Helmet>\n </Column>\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(injectIntl(Favourites));\n"],"sourceRoot":""}