mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
PERF: Use already loaded post when quoting or opening draft.
This commit is contained in:
parent
7b17eb06da
commit
9168ffc201
@ -254,47 +254,51 @@ export default Ember.Controller.extend(bufferedProperty("model"), {
|
|||||||
},
|
},
|
||||||
|
|
||||||
selectText(postId, buffer) {
|
selectText(postId, buffer) {
|
||||||
return this.get("model.postStream")
|
const loadedPost = this.get("model.postStream").findLoadedPost(postId);
|
||||||
.loadPost(postId)
|
const promise = loadedPost
|
||||||
.then(post => {
|
? Ember.RSVP.resolve(loadedPost)
|
||||||
const composer = this.composer;
|
: this.get("model.postStream").loadPost(postId);
|
||||||
const viewOpen = composer.get("model.viewOpen");
|
|
||||||
const quotedText = Quote.build(post, buffer);
|
|
||||||
|
|
||||||
// If we can't create a post, delegate to reply as new topic
|
return promise.then(post => {
|
||||||
if (!viewOpen && !this.get("model.details.can_create_post")) {
|
const composer = this.composer;
|
||||||
this.send("replyAsNewTopic", post, quotedText);
|
const viewOpen = composer.get("model.viewOpen");
|
||||||
return;
|
const quotedText = Quote.build(post, buffer);
|
||||||
}
|
|
||||||
|
|
||||||
const composerOpts = {
|
// If we can't create a post, delegate to reply as new topic
|
||||||
action: Composer.REPLY,
|
if (!viewOpen && !this.get("model.details.can_create_post")) {
|
||||||
draftKey: post.get("topic.draft_key")
|
this.send("replyAsNewTopic", post, quotedText);
|
||||||
};
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (post.get("post_number") === 1) {
|
const composerOpts = {
|
||||||
composerOpts.topic = post.get("topic");
|
action: Composer.REPLY,
|
||||||
} else {
|
draftSequence: post.get("topic.draft_sequence"),
|
||||||
composerOpts.post = post;
|
draftKey: post.get("topic.draft_key")
|
||||||
}
|
};
|
||||||
|
|
||||||
// If the composer is associated with a different post, we don't change it.
|
if (post.get("post_number") === 1) {
|
||||||
const composerPost = composer.get("model.post");
|
composerOpts.topic = post.get("topic");
|
||||||
if (composerPost && composerPost.get("id") !== this.get("post.id")) {
|
} else {
|
||||||
composerOpts.post = composerPost;
|
composerOpts.post = post;
|
||||||
}
|
}
|
||||||
|
|
||||||
composerOpts.quote = quotedText;
|
// If the composer is associated with a different post, we don't change it.
|
||||||
if (composer.get("model.viewOpen")) {
|
const composerPost = composer.get("model.post");
|
||||||
this.appEvents.trigger("composer:insert-block", quotedText);
|
if (composerPost && composerPost.get("id") !== this.get("post.id")) {
|
||||||
} else if (composer.get("model.viewDraft")) {
|
composerOpts.post = composerPost;
|
||||||
const model = composer.get("model");
|
}
|
||||||
model.set("reply", model.get("reply") + quotedText);
|
|
||||||
composer.send("openIfDraft");
|
composerOpts.quote = quotedText;
|
||||||
} else {
|
if (composer.get("model.viewOpen")) {
|
||||||
composer.open(composerOpts);
|
this.appEvents.trigger("composer:insert-block", quotedText);
|
||||||
}
|
} else if (composer.get("model.viewDraft")) {
|
||||||
});
|
const model = composer.get("model");
|
||||||
|
model.set("reply", model.get("reply") + quotedText);
|
||||||
|
composer.send("openIfDraft");
|
||||||
|
} else {
|
||||||
|
composer.open(composerOpts);
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
fillGapBefore(args) {
|
fillGapBefore(args) {
|
||||||
|
Loading…
Reference in New Issue
Block a user