mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: more resilient whisper state between composer states (#6687)
This commit is contained in:
parent
8da8f5d0f7
commit
4f24d7dec8
@ -194,9 +194,13 @@ export default Ember.Controller.extend({
|
|||||||
|
|
||||||
canUnlistTopic: Em.computed.and("model.creatingTopic", "isStaffUser"),
|
canUnlistTopic: Em.computed.and("model.creatingTopic", "isStaffUser"),
|
||||||
|
|
||||||
@computed("canWhisper", "model.whisper")
|
@computed("canWhisper", "model.post")
|
||||||
showWhisperToggle(canWhisper, isWhisper) {
|
showWhisperToggle(canWhisper, repliedToPost) {
|
||||||
return canWhisper && !isWhisper;
|
const replyingToWhisper =
|
||||||
|
repliedToPost &&
|
||||||
|
repliedToPost.get("post_type") === this.site.post_types.whisper;
|
||||||
|
|
||||||
|
return canWhisper && !replyingToWhisper;
|
||||||
},
|
},
|
||||||
|
|
||||||
@computed("isStaffUser", "model.action")
|
@computed("isStaffUser", "model.action")
|
||||||
@ -220,7 +224,7 @@ export default Ember.Controller.extend({
|
|||||||
return option;
|
return option;
|
||||||
},
|
},
|
||||||
|
|
||||||
@computed("model.composeState", "model.creatingTopic")
|
@computed("model.composeState", "model.creatingTopic", "model.post")
|
||||||
popupMenuOptions(composeState) {
|
popupMenuOptions(composeState) {
|
||||||
if (composeState === "open" || composeState === "fullscreen") {
|
if (composeState === "open" || composeState === "fullscreen") {
|
||||||
let options = [];
|
let options = [];
|
||||||
|
@ -366,28 +366,36 @@ QUnit.test("Composer can toggle between edit and reply", async assert => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("Composer can toggle whispers", async assert => {
|
QUnit.test("Composer can toggle whispers", async assert => {
|
||||||
|
const menu = selectKit(".toolbar-popup-menu-options");
|
||||||
|
|
||||||
await visit("/t/this-is-a-test-topic/9");
|
await visit("/t/this-is-a-test-topic/9");
|
||||||
await click(".topic-post:eq(0) button.reply");
|
await click(".topic-post:eq(0) button.reply");
|
||||||
|
|
||||||
await selectKit(".toolbar-popup-menu-options").expand();
|
await menu.expand();
|
||||||
await selectKit(".toolbar-popup-menu-options").selectRowByValue(
|
await menu.selectRowByValue("toggleWhisper");
|
||||||
"toggleWhisper"
|
|
||||||
);
|
|
||||||
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
find(".composer-fields .whisper .d-icon-eye-slash").length === 1,
|
find(".composer-fields .whisper .d-icon-eye-slash").length === 1,
|
||||||
"it sets the post type to whisper"
|
"it sets the post type to whisper"
|
||||||
);
|
);
|
||||||
|
|
||||||
await selectKit(".toolbar-popup-menu-options").expand();
|
await menu.expand();
|
||||||
await selectKit(".toolbar-popup-menu-options").selectRowByValue(
|
await menu.selectRowByValue("toggleWhisper");
|
||||||
"toggleWhisper"
|
|
||||||
);
|
|
||||||
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
find(".composer-fields .whisper .d-icon-eye-slash").length === 0,
|
find(".composer-fields .whisper .d-icon-eye-slash").length === 0,
|
||||||
"it removes the whisper mode"
|
"it removes the whisper mode"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
await menu.expand();
|
||||||
|
await menu.selectRowByValue("toggleWhisper");
|
||||||
|
|
||||||
|
await click(".toggle-fullscreen");
|
||||||
|
|
||||||
|
assert.ok(
|
||||||
|
menu.rowByValue("toggleWhisper").exists(),
|
||||||
|
"whisper toggling is still present when going fullscreen"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test(
|
QUnit.test(
|
||||||
|
Loading…
Reference in New Issue
Block a user