Sha256: 0720dcd83d67f6451007fa77de89e260e8f4dad722bb3e2480b8c0607a81ba67

Contents?: true

Size: 908 Bytes

Versions: 2

Compression:

Stored size: 908 Bytes

Contents

import Component from "@ember/component";

let CHECKED_BOTTOM;
let STICK_TO_BOTTOM;

export default Component.extend({
  tagName: "div",

  classNameBindings: [
    "model.rowClass",
    ":message-row",
    "model.selected:selected"
  ],

  click() {
    this.selectRow();
  },

  willInsertElement() {
    if (CHECKED_BOTTOM) {
      return;
    }

    const $topPanel = Em.$("#top-panel");

    const scrollTop = $topPanel.scrollTop();
    const height = $topPanel.height();
    const scrollHeight = $topPanel[0].scrollHeight;

    STICK_TO_BOTTOM = scrollHeight - 20 < height + scrollTop;
    CHECKED_BOTTOM = true;
  },

  didInsertElement() {
    const $topPanel = Em.$("#top-panel");
    Em.run.next(() => {
      CHECKED_BOTTOM = false;

      if (STICK_TO_BOTTOM) {
        STICK_TO_BOTTOM = false;
        $topPanel.scrollTop($topPanel[0].scrollHeight - $topPanel.height());
      }
    });
  }
});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
logster-2.5.1 client-app/app/components/message-row.js
logster-2.5.0 client-app/app/components/message-row.js