discourse-bcc/assets/javascripts/discourse/initializers/setup-bcc.js
2025-10-09 13:47:57 +01:00

38 lines
1 KiB
JavaScript

import { Result } from "discourse/adapters/rest";
import { ajax } from "discourse/lib/ajax";
import { withPluginApi } from "discourse/lib/plugin-api";
export default {
name: "setup-bcc",
after: "inject-objects",
initialize(container) {
let composer = container.factoryFor("model:composer");
if (composer) {
composer.class.serializeOnCreate("use_bcc");
composer.class.serializeToDraft("use_bcc");
}
withPluginApi((api) => {
api.modifyClass(
"adapter:post",
(Superclass) =>
class extends Superclass {
createRecord(store, type, args) {
if (type === "post" && args.use_bcc) {
return ajax("/posts/bcc", {
method: "POST",
data: args,
}).then((json) => {
return new Result(json.post, json);
});
} else {
delete args.use_bcc;
return super.createRecord(store, type, args);
}
}
}
);
});
},
};