{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/public_timeline/components/column_settings.js","webpack:///./app/javascript/mastodon/features/public_timeline/containers/column_settings_container.js","webpack:///./app/javascript/mastodon/features/public_timeline/index.js"],"names":["ColumnSettings","injectIntl","React","PureComponent","render","settings","onChange","this","props","className","settingPath","label","id","defaultMessage","connect","state","columnId","uuid","columns","getIn","index","findIndex","c","get","dispatch","key","checked","changeColumnParams","changeSetting","messages","defineMessages","title","PublicTimeline","onlyMedia","onlyRemote","timelineState","hasUnread","handlePin","removeColumn","addColumn","other","handleMove","dir","moveColumn","handleHeaderClick","column","scrollTop","setRef","handleLoadMore","maxId","expandPublicTimeline","componentDidMount","signedIn","context","identity","disconnect","connectPublicStream","componentDidUpdate","prevProps","componentWillUnmount","intl","multiColumn","pinned","bindToDocument","ref","formatMessage","icon","active","onPin","onMove","onClick","timelineId","onLoadMore","trackScroll","scrollKey","emptyMessage","Helmet","name","content","contextTypes","router","PropTypes","object","defaultProps"],"mappings":"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","file":"js/features/public_timeline-6f4bb4188c7330394745.chunk.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport SettingToggle from '../../notifications/components/setting_toggle';\n\nexport default @injectIntl\nclass ColumnSettings extends React.PureComponent {\n\n static propTypes = {\n settings: ImmutablePropTypes.map.isRequired,\n onChange: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n columnId: PropTypes.string,\n };\n\n render () {\n const { settings, onChange } = this.props;\n\n return (\n
\n
\n } />\n } />\n
\n
\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnSettings from '../components/column_settings';\nimport { changeSetting } from '../../../actions/settings';\nimport { changeColumnParams } from '../../../actions/columns';\n\nconst mapStateToProps = (state, { columnId }) => {\n const uuid = columnId;\n const columns = state.getIn(['settings', 'columns']);\n const index = columns.findIndex(c => c.get('uuid') === uuid);\n\n return {\n settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'public']),\n };\n};\n\nconst mapDispatchToProps = (dispatch, { columnId }) => {\n return {\n onChange (key, checked) {\n if (columnId) {\n dispatch(changeColumnParams(columnId, key, checked));\n } else {\n dispatch(changeSetting(['public', ...key], checked));\n }\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\nimport StatusListContainer from '../ui/containers/status_list_container';\nimport Column from '../../components/column';\nimport ColumnHeader from '../../components/column_header';\nimport { expandPublicTimeline } from '../../actions/timelines';\nimport { addColumn, removeColumn, moveColumn } from '../../actions/columns';\nimport ColumnSettingsContainer from './containers/column_settings_container';\nimport { connectPublicStream } from '../../actions/streaming';\nimport { Helmet } from 'react-helmet';\nimport DismissableBanner from 'mastodon/components/dismissable_banner';\n\nconst messages = defineMessages({\n title: { id: 'column.public', defaultMessage: 'Federated timeline' },\n});\n\nconst mapStateToProps = (state, { columnId }) => {\n const uuid = columnId;\n const columns = state.getIn(['settings', 'columns']);\n const index = columns.findIndex(c => c.get('uuid') === uuid);\n const onlyMedia = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'public', 'other', 'onlyMedia']);\n const onlyRemote = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyRemote']) : state.getIn(['settings', 'public', 'other', 'onlyRemote']);\n const timelineState = state.getIn(['timelines', `public${onlyMedia ? ':media' : ''}`]);\n\n return {\n hasUnread: !!timelineState && timelineState.get('unread') > 0,\n onlyMedia,\n onlyRemote,\n };\n};\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass PublicTimeline extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n identity: PropTypes.object,\n };\n\n static defaultProps = {\n onlyMedia: false,\n };\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n columnId: PropTypes.string,\n multiColumn: PropTypes.bool,\n hasUnread: PropTypes.bool,\n onlyMedia: PropTypes.bool,\n onlyRemote: PropTypes.bool,\n };\n\n handlePin = () => {\n const { columnId, dispatch, onlyMedia, onlyRemote } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn(onlyRemote ? 'REMOTE' : 'PUBLIC', { other: { onlyMedia, onlyRemote } }));\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 componentDidMount () {\n const { dispatch, onlyMedia, onlyRemote } = this.props;\n const { signedIn } = this.context.identity;\n\n dispatch(expandPublicTimeline({ onlyMedia, onlyRemote }));\n\n if (signedIn) {\n this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote }));\n }\n }\n\n componentDidUpdate (prevProps) {\n const { signedIn } = this.context.identity;\n\n if (prevProps.onlyMedia !== this.props.onlyMedia || prevProps.onlyRemote !== this.props.onlyRemote) {\n const { dispatch, onlyMedia, onlyRemote } = this.props;\n\n if (this.disconnect) {\n this.disconnect();\n }\n\n dispatch(expandPublicTimeline({ onlyMedia, onlyRemote }));\n\n if (signedIn) {\n this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote }));\n }\n }\n }\n\n componentWillUnmount () {\n if (this.disconnect) {\n this.disconnect();\n this.disconnect = null;\n }\n }\n\n setRef = c => {\n this.column = c;\n };\n\n handleLoadMore = maxId => {\n const { dispatch, onlyMedia, onlyRemote } = this.props;\n\n dispatch(expandPublicTimeline({ maxId, onlyMedia, onlyRemote }));\n };\n\n render () {\n const { intl, columnId, hasUnread, multiColumn, onlyMedia, onlyRemote } = this.props;\n const pinned = !!columnId;\n\n return (\n \n \n \n \n\n \n \n \n\n }\n bindToDocument={!multiColumn}\n />\n\n \n {intl.formatMessage(messages.title)}\n \n \n \n );\n }\n\n}\n"],"sourceRoot":""}