Merge branch 'prepared-statements-settings' into 'develop'
[akkoma] / priv / static / packs / flavours / glitch / async / home_timeline.js.map
index a1fe6470087c032fbddabc567cce65dac3665d4f..c063eebe23666ed7054637269a54e90d88826aed 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///app/javascript/seagate/sources/git/hacktivis.me/git/mastofe/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.js","webpack:///app/javascript/seagate/sources/git/hacktivis.me/git/mastofe/app/javascript/flavours/glitch/features/home_timeline/containers/column_settings_container.js","webpack:///app/javascript/seagate/sources/git/hacktivis.me/git/mastofe/app/javascript/flavours/glitch/features/home_timeline/index.js"],"names":["messages","defineMessages","filter_regex","id","defaultMessage","settings","ColumnSettings","injectIntl","render","_this$props","this","props","onChange","intl","Object","jsx","className","index_es","setting_toggle","prefix","settingPath","label","setting_text","formatMessage","React","PureComponent","connect","state","getIn","dispatch","path","checked","changeSetting","concat","onSave","saveSettings","title","HomeTimeline","hasUnread","isPartial","_this","columnId","removeColumn","addColumn","dir","_this$props2","moveColumn","column","scrollTop","c","maxId","expandHomeTimeline","componentDidMount","_checkIfReloadNeeded","componentDidUpdate","prevProps","componentWillUnmount","_stopPolling","wasPartial","polling","setInterval","clearInterval","_this$props3","multiColumn","pinned","react_default","a","createElement","ref","setRef","name","column_header","icon","active","onPin","handlePin","onMove","handleMove","onClick","handleHeaderClick","column_settings_container","status_list_container","trackScroll","scrollKey","onLoadMore","handleLoadMore","timelineId","emptyMessage","values","public","Link","to"],"mappings":"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","file":"flavours/glitch/async/home_timeline.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport SettingToggle from 'flavours/glitch/features/notifications/components/setting_toggle';\nimport SettingText from 'flavours/glitch/components/setting_text';\n\nconst messages = defineMessages({\n  filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },\n  settings: { id: 'home.settings', defaultMessage: 'Column settings' },\n});\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, intl } = 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\n        <div className='column-settings__row'>\n          <SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'direct']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_direct' defaultMessage='Show DMs' />} />\n        </div>\n\n        <span className='column-settings__section'><FormattedMessage id='home.column_settings.advanced' defaultMessage='Advanced' /></span>\n\n        <div className='column-settings__row'>\n          <SettingText prefix='home_timeline' settings={settings} settingPath={['regex', 'body']} onChange={onChange} label={intl.formatMessage(messages.filter_regex)} />\n        </div>\n      </div>\n    );\n  }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnSettings from '../components/column_settings';\nimport { changeSetting, saveSettings } from 'flavours/glitch/actions/settings';\n\nconst mapStateToProps = state => ({\n  settings: state.getIn(['settings', 'home']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n  onChange (path, checked) {\n    dispatch(changeSetting(['home', ...path], 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 'flavours/glitch/actions/timelines';\nimport PropTypes from 'prop-types';\nimport StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';\nimport Column from 'flavours/glitch/components/column';\nimport ColumnHeader from 'flavours/glitch/components/column_header';\nimport { addColumn, removeColumn, moveColumn } from 'flavours/glitch/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    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, hasUnread, columnId, multiColumn } = this.props;\n    const pinned = !!columnId;\n\n    return (\n      <Column ref={this.setRef} name='home' 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        />\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/home_timeline/containers/column_settings_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/home_timeline/index.js"],"names":["messages","defineMessages","filter_regex","settings","ColumnSettings","injectIntl","render","this","props","onChange","intl","className","id","defaultMessage","prefix","settingPath","label","formatMessage","React","PureComponent","connect","state","getIn","dispatch","path","checked","changeSetting","onSave","saveSettings","title","HomeTimeline","hasUnread","isPartial","columnId","removeColumn","addColumn","dir","moveColumn","column","scrollTop","c","maxId","expandHomeTimeline","componentDidMount","_checkIfReloadNeeded","componentDidUpdate","prevProps","componentWillUnmount","_stopPolling","wasPartial","polling","setInterval","clearInterval","multiColumn","pinned","bindToDocument","ref","setRef","name","icon","active","onPin","handlePin","onMove","handleMove","onClick","handleHeaderClick","trackScroll","scrollKey","onLoadMore","handleLoadMore","timelineId","emptyMessage","values","public","Link","to"],"mappings":"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","file":"flavours/glitch/async/home_timeline.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport SettingToggle from 'flavours/glitch/features/notifications/components/setting_toggle';\nimport SettingText from 'flavours/glitch/components/setting_text';\n\nconst messages = defineMessages({\n  filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },\n  settings: { id: 'home.settings', defaultMessage: 'Column settings' },\n});\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  };\n\n  render () {\n    const { settings, onChange, intl } = 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\n        <div className='column-settings__row'>\n          <SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'direct']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_direct' defaultMessage='Show DMs' />} />\n        </div>\n\n        <span className='column-settings__section'><FormattedMessage id='home.column_settings.advanced' defaultMessage='Advanced' /></span>\n\n        <div className='column-settings__row'>\n          <SettingText prefix='home_timeline' settings={settings} settingPath={['regex', 'body']} onChange={onChange} label={intl.formatMessage(messages.filter_regex)} />\n        </div>\n      </div>\n    );\n  }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnSettings from '../components/column_settings';\nimport { changeSetting, saveSettings } from 'flavours/glitch/actions/settings';\n\nconst mapStateToProps = state => ({\n  settings: state.getIn(['settings', 'home']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n  onChange (path, checked) {\n    dispatch(changeSetting(['home', ...path], 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 'flavours/glitch/actions/timelines';\nimport PropTypes from 'prop-types';\nimport StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';\nimport Column from 'flavours/glitch/components/column';\nimport ColumnHeader from 'flavours/glitch/components/column_header';\nimport { addColumn, removeColumn, moveColumn } from 'flavours/glitch/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', 'isPartial']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass HomeTimeline extends React.PureComponent {\n\n  static propTypes = {\n    dispatch: PropTypes.func.isRequired,\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, hasUnread, columnId, multiColumn } = this.props;\n    const pinned = !!columnId;\n\n    return (\n      <Column bindToDocument={!multiColumn} ref={this.setRef} name='home' 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          bindToDocument={!multiColumn}\n        />\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file