Sha256: 1b7bf4316b161f7bec65dafdadf82ab94c93d0227d8e171490f4d5da4357ca6f

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

import Route from "@ember/routing/route";
import MessageCollection from "client-app/models/message-collection";
import { isHidden } from "client-app/lib/utilities";

export default Route.extend({
  model() {
    // TODO from preload json?
    return MessageCollection.create();
  },

  setupController(controller, model) {
    this._super(controller, model);
    controller.setProperties({
      showDebug: true,
      showInfo: true,
      showWarn: true,
      showErr: true,
      showFatal: true,
      search: "",
      initialized: true
    });
    model.reload();

    let times = 0;
    let backoff = 1;

    this.refreshInterval = setInterval(() => {
      times += 1;
      const hidden = isHidden();
      let load = !hidden;

      if (hidden) {
        if (times % backoff === 0) {
          load = true;
          if (backoff < 20) {
            backoff++;
          }
        }
      }
      // refresh a lot less aggressively in background
      if (load) {
        model.loadMore();
        if (!hidden) {
          backoff = 1;
        }
      }
    }, 3000);
  },

  deactivate() {
    clearInterval(this.refreshInterval);
  }
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
logster-1.3.0 client-app/app/routes/index.js
logster-1.3.pre client-app/app/routes/index.js