Sha256: 91ba30618f7bbdb84434bdb0334ede013ba8f13d13a895a676a7ea2a2a0e178c

Contents?: true

Size: 1003 Bytes

Versions: 23

Compression:

Stored size: 1003 Bytes

Contents

import Component from "@ember/component";
import { bound } from "client-app/lib/decorators";

export default Component.extend({
  showMenu: false,
  tagName: "span",

  @bound
  outsideClickHandler(event) {
    if (
      this.element &&
      !this.element.contains(event.target) &&
      this.element !== event.target
    ) {
      this.set("showMenu", false);
      this.updateMenu();
    }
  },

  updateMenu() {
    if (this.showMenu) {
      this.addOutsideClickHandler();
    } else {
      this.removeOutsideClickHandler();
    }
  },

  addOutsideClickHandler() {
    document.addEventListener("click", this.outsideClickHandler);
  },

  removeOutsideClickHandler() {
    document.removeEventListener("click", this.outsideClickHandler);
  },

  willDestroyElement() {
    this._super(...arguments);
    this.removeOutsideClickHandler();
  },

  actions: {
    expandMenu() {
      this.toggleProperty("showMenu");
      this.updateMenu();
    },
    share() {
      this.share();
    }
  }
});

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
logster-2.11.4 client-app/app/components/actions-menu.js
logster-2.11.3 client-app/app/components/actions-menu.js
logster-2.11.2 client-app/app/components/actions-menu.js
logster-2.11.1 client-app/app/components/actions-menu.js
logster-2.11.0 client-app/app/components/actions-menu.js
logster-2.10.1 client-app/app/components/actions-menu.js
logster-2.10.0 client-app/app/components/actions-menu.js
logster-2.9.8 client-app/app/components/actions-menu.js
logster-2.9.7 client-app/app/components/actions-menu.js
logster-2.9.6 client-app/app/components/actions-menu.js
logster-2.9.5 client-app/app/components/actions-menu.js
logster-2.9.4 client-app/app/components/actions-menu.js
logster-2.9.3 client-app/app/components/actions-menu.js
logster-2.9.2 client-app/app/components/actions-menu.js
logster-2.9.1 client-app/app/components/actions-menu.js
logster-2.9.0 client-app/app/components/actions-menu.js
logster-2.8.0 client-app/app/components/actions-menu.js
logster-2.7.1 client-app/app/components/actions-menu.js
logster-2.7.0 client-app/app/components/actions-menu.js
logster-2.6.3 client-app/app/components/actions-menu.js