diff options
author | Chris <chris@cwmart.in> | 2017-12-25 14:56:05 -0500 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-12-25 20:56:05 +0100 |
commit | 1e5d1fa5c81fc08398385495d07f7bceb1e42326 (patch) | |
tree | 40851d1dbe5699db00d7ab8e06df2b942db32d1b /app/javascript/mastodon/features/status/index.js | |
parent | a3b369337fa5a84dcf43a60ca493828ffe2f63b7 (diff) |
Add mute, block, conversation mute actions to detailed status dropdown menu (#6099)
* removed references to hideOnMobile in column_link and getting_started * add mute, block, conversationMute actions to detailed status dropdown (fixes #1226) * remove unused withDismiss in detailed status
Diffstat (limited to 'app/javascript/mastodon/features/status/index.js')
-rw-r--r-- | app/javascript/mastodon/features/status/index.js | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index cc28ff5fc..73ea9321d 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -20,14 +20,16 @@ import { replyCompose, mentionCompose, } from '../../actions/compose'; -import { deleteStatus } from '../../actions/statuses'; +import { blockAccount } from '../../actions/accounts'; +import { muteStatus, unmuteStatus, deleteStatus } from '../../actions/statuses'; +import { initMuteModal } from '../../actions/mutes'; import { initReport } from '../../actions/reports'; import { makeGetStatus } from '../../selectors'; import { ScrollContainer } from 'react-router-scroll-4'; import ColumnBackButton from '../../components/column_back_button'; import StatusContainer from '../../containers/status_container'; import { openModal } from '../../actions/modal'; -import { defineMessages, injectIntl } from 'react-intl'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { HotKeys } from 'react-hotkeys'; import { boostModal, deleteModal } from '../../initial_state'; @@ -36,6 +38,7 @@ import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from const messages = defineMessages({ deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' }, + blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' }, }); const makeMapStateToProps = () => { @@ -148,6 +151,28 @@ export default class Status extends ImmutablePureComponent { this.props.dispatch(openModal('VIDEO', { media, time })); } + handleMuteClick = (account) => { + this.props.dispatch(initMuteModal(account)); + } + + handleConversationMuteClick = (status) => { + if (status.get('muted')) { + this.props.dispatch(unmuteStatus(status.get('id'))); + } else { + this.props.dispatch(muteStatus(status.get('id'))); + } + } + + handleBlockClick = (account) => { + const { dispatch, intl } = this.props; + + dispatch(openModal('CONFIRM', { + message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />, + confirm: intl.formatMessage(messages.blockConfirm), + onConfirm: () => dispatch(blockAccount(account.get('id'))), + })); + } + handleReport = (status) => { this.props.dispatch(initReport(status.get('account'), status)); } @@ -321,6 +346,9 @@ export default class Status extends ImmutablePureComponent { onReblog={this.handleReblogClick} onDelete={this.handleDeleteClick} onMention={this.handleMentionClick} + onMute={this.handleMuteClick} + onMuteConversation={this.handleConversationMuteClick} + onBlock={this.handleBlockClick} onReport={this.handleReport} onPin={this.handlePin} onEmbed={this.handleEmbed} |