text: import Controller from '@ember/controller';
  import {EMAIL_EVENTS, NEWSLETTER_EVENTS} from 'ghost-admin/helpers/members-event-filter';
  import {action} from '@ember/object';
  import {inject as service} from '@ember/service';
  import {tracked} from '@glimmer/tracking';
  
  export default class MembersActivityController extends Controller {
      @service router;
      @service settings;
      @service store;
  
      queryParams = ['excludedEvents', 'member'];
  
      @tracked excludedEvents = null;
      @tracked member = null;
  
      // we don't want to show or allow filtering of certain events in some situations
      // - no member selected = don't show email events, they flood the list and the API can't paginate correctly
      // - newsletter is disabled = don't show email or newletter events
      get hiddenEvents() {
          const hiddenEvents = [];
  
          if (!this.member) {
              hiddenEvents.push(...EMAIL_EVENTS);
          }
  
          if (this.settings.get('editorDefaultEmailRecipients') === 'disabled') {
              hiddenEvents.push(...EMAIL_EVENTS, ...NEWSLETTER_EVENTS);
          }
  
          return hiddenEvents;
      }
  
      get fullExcludedEvents() {
          return (this.excludedEvents || '').split(',').concat(this.hiddenEvents);
      }
  
      get memberRecord() {
          if (!this.member) {
              return null;
          }
  
          // TODO: {reload: true} here shouldn't be needed but without it
          // the template renders nothing if the record is already in the store
          return this.store.findRecord('member', this.member, {reload: true});
      }
  
      @action
      changeExcludedEvents(newList) {
          this.router.transitionTo({queryParams: {excludedEvents: newList}});
      }
  
      @action
      changeMember(member) {
          this.router.transitionTo({queryParams: {member: member?.id}});
      }
  }
  