import { computed } from '@ember/object';
import { alias } from '@ember/object/computed';
import { inject as service } from '@ember/service';
import Component from '@ember/component';
import ModalBase from 'shared/mixins/modal-base';
import C from 'ui/utils/constants';
import layout from './template';

let DEFAULT_TIME = 400;

export default Component.extend(ModalBase, {
  prefs:      service(),
  settings:   service(),
  access:     service(),

  layout,
  classNames: ['generic', 'medium-modal', 'p-0'],
  time:       DEFAULT_TIME,
  timer:      null,

  isAdmin: alias('access.admin'),

  init() {
    this._super(...arguments);
    this.set('pods', this.get('store').all('pod'));

    this.set('timer', setInterval(() => {
      this.updateTime();
    }, 1000));
  },

  willDestroyElement() {
    clearInterval(this.get('timer'));
  },
  containerCount: function() {
    let count = this.get('pods.length');

    if ( count > 9 ) {
      return count;
    } else {
      return `0${  count }`;
    }
  }.property('pods.length'),

  currentTheme: computed(`prefs.${ C.PREFS.THEME }`, function() {
    return this.get(`prefs.${ C.PREFS.THEME }`);
  }),


  updateTime() {
    let time = this.get('time');

    if ( time > 0 ) {
      time--;
    } else {
      time = DEFAULT_TIME;
    }

    this.set('time', time);
  },

});
