mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 09:42:07 +08:00
FIX: Switching composer action does not refresh composer actions content (#9791)
This commit is contained in:
parent
6b04760572
commit
7f07c513a7
|
@ -16,10 +16,12 @@ import { isEmpty } from "@ember/utils";
|
|||
// Component can get destroyed and lose state
|
||||
let _topicSnapshot = null;
|
||||
let _postSnapshot = null;
|
||||
let _actionSnapshot = null;
|
||||
|
||||
export function _clearSnapshots() {
|
||||
_topicSnapshot = null;
|
||||
_postSnapshot = null;
|
||||
_actionSnapshot = null;
|
||||
}
|
||||
|
||||
export default DropdownSelectBoxComponent.extend({
|
||||
|
@ -50,6 +52,7 @@ export default DropdownSelectBoxComponent.extend({
|
|||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
let changeContent = false;
|
||||
|
||||
// if we change topic we want to change both snapshots
|
||||
if (
|
||||
|
@ -58,18 +61,25 @@ export default DropdownSelectBoxComponent.extend({
|
|||
) {
|
||||
_topicSnapshot = this.topic;
|
||||
_postSnapshot = this.post;
|
||||
this.contentChanged();
|
||||
changeContent = true;
|
||||
}
|
||||
|
||||
// if we hit reply on a different post we want to change postSnapshot
|
||||
if (this.post && (!_postSnapshot || this.post.id !== _postSnapshot.id)) {
|
||||
_postSnapshot = this.post;
|
||||
changeContent = true;
|
||||
}
|
||||
|
||||
if (this.action !== _actionSnapshot) {
|
||||
_actionSnapshot = this.action;
|
||||
changeContent = true;
|
||||
}
|
||||
|
||||
if (changeContent) {
|
||||
this.contentChanged();
|
||||
}
|
||||
|
||||
if (isEmpty(this.content)) {
|
||||
this.set("selectKit.isHidden", true);
|
||||
}
|
||||
this.set("selectKit.isHidden", isEmpty(this.content));
|
||||
},
|
||||
|
||||
modifySelection() {
|
||||
|
|
|
@ -148,12 +148,18 @@ QUnit.test("reply_as_new_topic without a new_topic draft", async assert => {
|
|||
});
|
||||
|
||||
QUnit.test("hide component if no content", async assert => {
|
||||
const composerActions = selectKit(".composer-actions");
|
||||
await visit("/");
|
||||
await click("button#create-topic");
|
||||
|
||||
await visit("/u/eviltrout/messages");
|
||||
await click(".new-private-message");
|
||||
const composerActions = selectKit(".composer-actions");
|
||||
await composerActions.expand();
|
||||
await composerActions.selectRowByValue("reply_as_private_message");
|
||||
|
||||
assert.ok(composerActions.el().hasClass("is-hidden"));
|
||||
|
||||
await click("button#create-topic");
|
||||
await composerActions.expand();
|
||||
assert.equal(composerActions.rows().length, 2);
|
||||
});
|
||||
|
||||
QUnit.test("interactions", async assert => {
|
||||
|
|
Loading…
Reference in New Issue
Block a user