Ghost/ghost/admin/app/helpers/publish-options.js
Simon Backx 1f2857e0e4
Reduced amount of member count queries when opening the editor (#19474)
no issue

When we open the editor, we fire 4 requests to fetch member counts. This
commit fixes this by replacing those calls with the members count cache
service.
2024-01-13 19:13:49 +01:00

52 lines
1.4 KiB
JavaScript

import PublishOptions from '../utils/publish-options';
import {Resource} from 'ember-could-get-used-to-this';
import {inject} from 'ghost-admin/decorators/inject';
import {inject as service} from '@ember/service';
import {tracked} from '@glimmer/tracking';
export default class PublishOptionsResource extends Resource {
@service limit;
@service session;
@service settings;
@service store;
@service membersCountCache;
@inject config;
@tracked publishOptions;
get value() {
return this.publishOptions;
}
setup() {
const post = this.args.positional[0];
this._post = post;
this.publishOptions = this._createPublishOptions(post);
}
update() {
// required due to a weird invalidation issue when using Ember Data with ember-could-get-used-to-this
// TODO: re-test after upgrading to ember-resources
const post = this.args.positional[0];
if (post !== this._post) {
this.publishOptions = this._createPublishOptions(post);
}
}
_createPublishOptions(post) {
const {config, limit, settings, store, membersCountCache} = this;
return new PublishOptions({
config,
limit,
post,
settings,
store,
membersCountCache,
user: this.session.user
});
}
}