mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
DEV: Clean up loadDraft()
(#17969)
This commit is contained in:
parent
48e2b984fb
commit
665327f7a4
1 changed files with 20 additions and 28 deletions
|
@ -34,14 +34,8 @@ import { inject as service } from "@ember/service";
|
||||||
import { shortDate } from "discourse/lib/formatter";
|
import { shortDate } from "discourse/lib/formatter";
|
||||||
import showModal from "discourse/lib/show-modal";
|
import showModal from "discourse/lib/show-modal";
|
||||||
|
|
||||||
function loadDraft(store, opts) {
|
async function loadDraft(store, opts = {}) {
|
||||||
let promise = Promise.resolve();
|
let { draft, draftKey, draftSequence } = opts;
|
||||||
|
|
||||||
opts = opts || {};
|
|
||||||
|
|
||||||
let draft = opts.draft;
|
|
||||||
const draftKey = opts.draftKey;
|
|
||||||
const draftSequence = opts.draftSequence;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (draft && typeof draft === "string") {
|
if (draft && typeof draft === "string") {
|
||||||
|
@ -51,29 +45,27 @@ function loadDraft(store, opts) {
|
||||||
draft = null;
|
draft = null;
|
||||||
Draft.clear(draftKey, draftSequence);
|
Draft.clear(draftKey, draftSequence);
|
||||||
}
|
}
|
||||||
if (
|
|
||||||
draft &&
|
|
||||||
((draft.title && draft.title !== "") || (draft.reply && draft.reply !== ""))
|
|
||||||
) {
|
|
||||||
const composer = store.createRecord("composer");
|
|
||||||
const serializedFields = Composer.serializedFieldsForDraft();
|
|
||||||
|
|
||||||
let attrs = {
|
if (!draft?.title && !draft?.reply) {
|
||||||
draftKey,
|
return;
|
||||||
draftSequence,
|
|
||||||
draft: true,
|
|
||||||
composerState: Composer.DRAFT,
|
|
||||||
topic: opts.topic,
|
|
||||||
};
|
|
||||||
|
|
||||||
serializedFields.forEach((f) => {
|
|
||||||
attrs[f] = draft[f] || opts[f];
|
|
||||||
});
|
|
||||||
|
|
||||||
promise = promise.then(() => composer.open(attrs)).then(() => composer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return promise;
|
let attrs = {
|
||||||
|
draftKey,
|
||||||
|
draftSequence,
|
||||||
|
draft: true,
|
||||||
|
composerState: Composer.DRAFT,
|
||||||
|
topic: opts.topic,
|
||||||
|
};
|
||||||
|
|
||||||
|
Composer.serializedFieldsForDraft().forEach((f) => {
|
||||||
|
attrs[f] = draft[f] || opts[f];
|
||||||
|
});
|
||||||
|
|
||||||
|
const composer = store.createRecord("composer");
|
||||||
|
await composer.open(attrs);
|
||||||
|
|
||||||
|
return composer;
|
||||||
}
|
}
|
||||||
|
|
||||||
const _popupMenuOptionsCallbacks = [];
|
const _popupMenuOptionsCallbacks = [];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue