forked from AkkomaGang/akkoma
1 line
No EOL
8.9 KiB
Text
1 line
No EOL
8.9 KiB
Text
{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js","webpack:///./app/javascript/mastodon/features/community_timeline/index.js"],"names":["column_settings_container","Object","es","state","_ref","uuid","columnId","columns","getIn","index","findIndex","c","get","settings","dispatch","_ref2","onChange","key","checked","concat","column_settings","messages","index_es","title","id","defaultMessage","community_timeline_CommunityTimeline","onlyMedia","hasUnread","handlePin","_this$props","_this","props","other","handleMove","dir","_this$props2","handleHeaderClick","column","scrollTop","setRef","handleLoadMore","maxId","_this$props3","timelines","componentDidMount","_props","this","disconnect","streaming","componentDidUpdate","prevProps","_props2","componentWillUnmount","render","_props3","intl","shouldUpdateScroll","multiColumn","pinned","react_default","a","createElement","ref","label","formatMessage","jsx_default","column_header","icon","active","onPin","onMove","onClick","status_list_container","trackScroll","scrollKey","timelineId","onLoadMore","emptyMessage","PureComponent","contextTypes","router","prop_types_default","object","defaultProps"],"mappings":"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","file":"features/community_timeline.js","sourcesContent":["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', 'community']),\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(['community', ...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 { expandCommunityTimeline } from '../../actions/timelines';\nimport { addColumn, removeColumn, moveColumn } from '../../actions/columns';\nimport ColumnSettingsContainer from './containers/column_settings_container';\nimport { connectCommunityStream } from '../../actions/streaming';\n\nconst messages = defineMessages({\n title: { id: 'column.community', defaultMessage: 'Local timeline' },\n});\n\nconst mapStateToProps = (state, { onlyMedia, 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 hasUnread: state.getIn(['timelines', `community${onlyMedia ? ':media' : ''}`, 'unread']) > 0,\n onlyMedia: (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'community', 'other', 'onlyMedia']),\n };\n};\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class CommunityTimeline extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static defaultProps = {\n onlyMedia: false,\n };\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n columnId: PropTypes.string,\n intl: PropTypes.object.isRequired,\n hasUnread: PropTypes.bool,\n multiColumn: PropTypes.bool,\n onlyMedia: PropTypes.bool,\n };\n\n handlePin = () => {\n const { columnId, dispatch, onlyMedia } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('COMMUNITY', { other: { onlyMedia } }));\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 } = this.props;\n\n dispatch(expandCommunityTimeline({ onlyMedia }));\n this.disconnect = dispatch(connectCommunityStream({ onlyMedia }));\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.onlyMedia !== this.props.onlyMedia) {\n const { dispatch, onlyMedia } = this.props;\n\n this.disconnect();\n dispatch(expandCommunityTimeline({ onlyMedia }));\n this.disconnect = dispatch(connectCommunityStream({ onlyMedia }));\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 } = this.props;\n\n dispatch(expandCommunityTimeline({ maxId, onlyMedia }));\n }\n\n render () {\n const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, onlyMedia } = this.props;\n const pinned = !!columnId;\n\n return (\n <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>\n <ColumnHeader\n icon='users'\n active={hasUnread}\n title={intl.formatMessage(messages.title)}\n onPin={this.handlePin}\n onMove={this.handleMove}\n onClick={this.handleHeaderClick}\n pinned={pinned}\n multiColumn={multiColumn}\n >\n <ColumnSettingsContainer columnId={columnId} />\n </ColumnHeader>\n\n <StatusListContainer\n trackScroll={!pinned}\n scrollKey={`community_timeline-${columnId}`}\n timelineId={`community${onlyMedia ? ':media' : ''}`}\n onLoadMore={this.handleLoadMore}\n emptyMessage={<FormattedMessage id='empty_column.community' defaultMessage='The local timeline is empty. Write something publicly to get the ball rolling!' />}\n shouldUpdateScroll={shouldUpdateScroll}\n />\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""} |