diff --git a/src/components/modal/mute/modal.jsx b/src/components/modal/mute/modal.jsx
index 1f7a56027..0cd6ec806 100644
--- a/src/components/modal/mute/modal.jsx
+++ b/src/components/modal/mute/modal.jsx
@@ -162,7 +162,7 @@ class MuteModal extends React.Component {
)}}
/>
- {this.state.step === this.numSteps ? feedbackPrompt : null}
+ {this.state.step === this.numSteps && this.props.showFeedback ? feedbackPrompt : null}
update;
const MAX_COMMENT_LENGTH = 500;
+const JUST_MUTED_ERROR = 'isBad';
const ComposeStatus = keyMirror({
EDITING: null,
@@ -369,7 +370,9 @@ class ComposeComment extends React.Component {
commentContent={this.state.message}
muteModalMessages={this.getMuteMessageInfo()}
shouldCloseOnOverlayClick={false}
- showFeedback={this.state.status === ComposeStatus.REJECTED_MUTE}
+ showFeedback={
+ this.state.status === ComposeStatus.REJECTED_MUTE && this.state.error === JUST_MUTED_ERROR
+ }
showWarning={this.state.showWarning}
startStep={this.getMuteModalStartStep()}
timeMuted={formatTime.formatRelativeTime(this.state.muteExpiresAtMs, window._locale)}
diff --git a/test/unit/components/compose-comment.test.jsx b/test/unit/components/compose-comment.test.jsx
index c57cffb75..293abb3d7 100644
--- a/test/unit/components/compose-comment.test.jsx
+++ b/test/unit/components/compose-comment.test.jsx
@@ -304,6 +304,59 @@ describe('Compose Comment test', () => {
expect(component.find('MuteModal').props().showWarning).toBe(true);
});
+ test('Mute Modal gets showFeedback props from state', () => {
+ const store = mockStore({
+ session: {
+ session: {
+ user: {},
+ permissions: {
+ mute_status: {}
+ }
+ }
+ }
+ });
+
+ const component = mountWithIntl(
+
+ , {context: {store}}
+ );
+
+ const commentInstance = component.find('ComposeComment').instance();
+ commentInstance.setState({
+ status: 'REJECTED_MUTE',
+ error: 'isBad',
+ muteOpen: true
+ });
+
+ component.update();
+ expect(component.find('MuteModal').exists()).toEqual(true);
+ expect(component.find('MuteModal').props().showFeedback).toBe(true);
+
+ commentInstance.setState({
+ status: 'REJECTED_MUTE',
+ error: 'isMute',
+ showWarning: true,
+ muteOpen: true
+ });
+
+ component.update();
+ expect(component.find('MuteModal').exists()).toEqual(true);
+ expect(component.find('MuteModal').props().showFeedback).toBe(false);
+
+ commentInstance.setState({
+ status: 'REJECTED',
+ error: 'isBad',
+ showWarning: true,
+ muteOpen: true
+ });
+
+ component.update();
+ expect(component.find('MuteModal').exists()).toEqual(true);
+ expect(component.find('MuteModal').props().showFeedback).toBe(false);
+ });
+
test('shouldShowMuteModal is false when muteStatus is undefined ', () => {
const commentInstance = getComposeCommentWrapper({}).instance();
expect(commentInstance.shouldShowMuteModal()).toBe(false);
diff --git a/test/unit/components/mute-modal.test.jsx b/test/unit/components/mute-modal.test.jsx
index 9601e97fc..5125e38af 100644
--- a/test/unit/components/mute-modal.test.jsx
+++ b/test/unit/components/mute-modal.test.jsx
@@ -160,6 +160,23 @@ describe('MuteModalTest', () => {
expect(component.find('p.feedback-prompt').exists()).toEqual(true);
});
+ test('Mute modal does not for feedback on extra showWarning step if not showFeedback', () => {
+ const component = mountWithIntl(
+
+ );
+ component.find('MuteModal').instance()
+ .setState({step: 1});
+ component.update();
+ expect(component.find('p.feedback-prompt').exists()).toEqual(false);
+ component.find('MuteModal').instance()
+ .setState({step: 2});
+ component.update();
+ expect(component.find('p.feedback-prompt').exists()).toEqual(false);
+ });
+
test('Mute modal handle go to feedback', () => {
const component = shallowWithIntl(