1 line
9.5 KiB
Plaintext
1 line
9.5 KiB
Plaintext
{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/home_timeline/components/column_settings.js","webpack:///./app/javascript/mastodon/features/home_timeline/containers/column_settings_container.js","webpack:///./app/javascript/mastodon/features/home_timeline/index.js"],"names":["column_settings_ColumnSettings","Object","index_es","render","_props","this","props","settings","onChange","jsx_default","className","id","defaultMessage","setting_toggle","prefix","settingPath","label","react_default","a","PureComponent","column_settings_container","es","state","getIn","dispatch","key","checked","actions_settings","concat","onSave","messages","title","home_timeline_HomeTimeline","hasUnread","isPartial","handlePin","_this$props","_this","columnId","columns","handleMove","dir","_this$props2","handleHeaderClick","column","scrollTop","setRef","c","handleLoadMore","maxId","timelines","componentDidMount","_checkIfReloadNeeded","componentDidUpdate","prevProps","componentWillUnmount","_stopPolling","wasPartial","polling","setInterval","clearInterval","intl","shouldUpdateScroll","multiColumn","pinned","createElement","ref","formatMessage","column_header","icon","active","onPin","onMove","onClick","status_list_container","trackScroll","scrollKey","onLoadMore","timelineId","emptyMessage","values","public","Link","to"],"mappings":"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","file":"features/home_timeline.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\n@injectIntl\nexport default class ColumnSettings extends React.PureComponent {\n\n static propTypes = {\n settings: ImmutablePropTypes.map.isRequired,\n onChange: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const { settings, onChange } = this.props;\n\n return (\n <div>\n <span className='column-settings__section'><FormattedMessage id='home.column_settings.basic' defaultMessage='Basic' /></span>\n\n <div className='column-settings__row'>\n <SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'reblog']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_reblogs' defaultMessage='Show boosts' />} />\n </div>\n\n <div className='column-settings__row'>\n <SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'reply']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_replies' defaultMessage='Show replies' />} />\n </div>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnSettings from '../components/column_settings';\nimport { changeSetting, saveSettings } from '../../../actions/settings';\n\nconst mapStateToProps = state => ({\n settings: state.getIn(['settings', 'home']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (key, checked) {\n dispatch(changeSetting(['home', ...key], checked));\n },\n\n onSave () {\n dispatch(saveSettings());\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { expandHomeTimeline } from '../../actions/timelines';\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 { addColumn, removeColumn, moveColumn } from '../../actions/columns';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ColumnSettingsContainer from './containers/column_settings_container';\nimport { Link } from 'react-router-dom';\n\nconst messages = defineMessages({\n title: { id: 'column.home', defaultMessage: 'Home' },\n});\n\nconst mapStateToProps = state => ({\n hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,\n isPartial: state.getIn(['timelines', 'home', 'items', 0], null) === null,\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class HomeTimeline extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n intl: PropTypes.object.isRequired,\n hasUnread: PropTypes.bool,\n isPartial: PropTypes.bool,\n columnId: PropTypes.string,\n multiColumn: PropTypes.bool,\n };\n\n handlePin = () => {\n const { columnId, dispatch } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('HOME', {}));\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 = maxId => {\n this.props.dispatch(expandHomeTimeline({ maxId }));\n }\n\n componentDidMount () {\n this._checkIfReloadNeeded(false, this.props.isPartial);\n }\n\n componentDidUpdate (prevProps) {\n this._checkIfReloadNeeded(prevProps.isPartial, this.props.isPartial);\n }\n\n componentWillUnmount () {\n this._stopPolling();\n }\n\n _checkIfReloadNeeded (wasPartial, isPartial) {\n const { dispatch } = this.props;\n\n if (wasPartial === isPartial) {\n return;\n } else if (!wasPartial && isPartial) {\n this.polling = setInterval(() => {\n dispatch(expandHomeTimeline());\n }, 3000);\n } else if (wasPartial && !isPartial) {\n this._stopPolling();\n }\n }\n\n _stopPolling () {\n if (this.polling) {\n clearInterval(this.polling);\n this.polling = null;\n }\n }\n\n render () {\n const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn } = this.props;\n const pinned = !!columnId;\n\n return (\n <Column ref={this.setRef} label={intl.formatMessage(messages.title)}>\n <ColumnHeader\n icon='home'\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 />\n </ColumnHeader>\n\n <StatusListContainer\n trackScroll={!pinned}\n scrollKey={`home_timeline-${columnId}`}\n onLoadMore={this.handleLoadMore}\n timelineId='home'\n emptyMessage={<FormattedMessage id='empty_column.home' defaultMessage='Your home timeline is empty! Visit {public} or use search to get started and meet other users.' values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />}\n shouldUpdateScroll={shouldUpdateScroll}\n />\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""} |