{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/components/domain.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/containers/domain_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/mastodon/features/domain_blocks/index.js"],"names":["messages","defineMessages","unblockDomain","id","defaultMessage","Account","injectIntl","_this","props","onUnblockDomain","domain","render","_this$props","this","intl","Object","jsx","className","icon_button","active","icon","title","formatMessage","onClick","handleDomainUnblock","ImmutablePureComponent","PropTypes","string","func","isRequired","object","blockDomainConfirm","connect","dispatch","_ref","onBlockDomain","openModal","message","index_es","values","confirm","onConfirm","blockDomain","Domain","heading","Blocks","state","domains","getIn","hasMore","debounce_default","expandDomainBlocks","leading","componentWillMount","fetchDomainBlocks","shouldUpdateScroll","column","loading_indicator","emptyMessage","column_back_button_slim","scrollable_list","scrollKey","onLoadMore","handleLoadMore","map","domain_container","params","bool","ImmutablePropTypes","orderedSet"],"mappings":"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","file":"features/domain_blocks.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nconst messages = defineMessages({\n  unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },\n});\n\nexport default @injectIntl\nclass Account extends ImmutablePureComponent {\n\n  static propTypes = {\n    domain: PropTypes.string,\n    onUnblockDomain: PropTypes.func.isRequired,\n    intl: PropTypes.object.isRequired,\n  };\n\n  handleDomainUnblock = () => {\n    this.props.onUnblockDomain(this.props.domain);\n  }\n\n  render () {\n    const { domain, intl } = this.props;\n\n    return (\n      <div className='domain'>\n        <div className='domain__wrapper'>\n          <span className='domain__domain-name'>\n            <strong>{domain}</strong>\n          </span>\n\n          <div className='domain__buttons'>\n            <IconButton active icon='unlock' title={intl.formatMessage(messages.unblockDomain, { domain })} onClick={this.handleDomainUnblock} />\n          </div>\n        </div>\n      </div>\n    );\n  }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { blockDomain, unblockDomain } from '../actions/domain_blocks';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport Domain from '../components/domain';\nimport { openModal } from '../actions/modal';\n\nconst messages = defineMessages({\n  blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },\n});\n\nconst makeMapStateToProps = () => {\n  const mapStateToProps = () => ({});\n\n  return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n  onBlockDomain (domain) {\n    dispatch(openModal('CONFIRM', {\n      message: <FormattedMessage id='confirmations.domain_block.message' defaultMessage='Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.' values={{ domain: <strong>{domain}</strong> }} />,\n      confirm: intl.formatMessage(messages.blockDomainConfirm),\n      onConfirm: () => dispatch(blockDomain(domain)),\n    }));\n  },\n\n  onUnblockDomain (domain) {\n    dispatch(unblockDomain(domain));\n  },\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Domain));\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { debounce } from 'lodash';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButtonSlim from '../../components/column_back_button_slim';\nimport DomainContainer from '../../containers/domain_container';\nimport { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_blocks';\nimport ScrollableList from '../../components/scrollable_list';\n\nconst messages = defineMessages({\n  heading: { id: 'column.domain_blocks', defaultMessage: 'Hidden domains' },\n  unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unhide {domain}' },\n});\n\nconst mapStateToProps = state => ({\n  domains: state.getIn(['domain_lists', 'blocks', 'items']),\n  hasMore: !!state.getIn(['domain_lists', 'blocks', 'next']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Blocks extends ImmutablePureComponent {\n\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    dispatch: PropTypes.func.isRequired,\n    shouldUpdateScroll: PropTypes.func,\n    hasMore: PropTypes.bool,\n    domains: ImmutablePropTypes.orderedSet,\n    intl: PropTypes.object.isRequired,\n  };\n\n  componentWillMount () {\n    this.props.dispatch(fetchDomainBlocks());\n  }\n\n  handleLoadMore = debounce(() => {\n    this.props.dispatch(expandDomainBlocks());\n  }, 300, { leading: true });\n\n  render () {\n    const { intl, domains, shouldUpdateScroll, hasMore } = this.props;\n\n    if (!domains) {\n      return (\n        <Column>\n          <LoadingIndicator />\n        </Column>\n      );\n    }\n\n    const emptyMessage = <FormattedMessage id='empty_column.domain_blocks' defaultMessage='There are no hidden domains yet.' />;\n\n    return (\n      <Column icon='minus-circle' heading={intl.formatMessage(messages.heading)}>\n        <ColumnBackButtonSlim />\n        <ScrollableList\n          scrollKey='domain_blocks'\n          onLoadMore={this.handleLoadMore}\n          hasMore={hasMore}\n          shouldUpdateScroll={shouldUpdateScroll}\n          emptyMessage={emptyMessage}\n        >\n          {domains.map(domain =>\n            <DomainContainer key={domain} domain={domain} />\n          )}\n        </ScrollableList>\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}