diff --git a/src/api/menu/MenuAPI.js b/src/api/menu/MenuAPI.js index c9d3375fd9..9227a4e344 100644 --- a/src/api/menu/MenuAPI.js +++ b/src/api/menu/MenuAPI.js @@ -38,7 +38,7 @@ class MenuAPI { this._showObjectMenu = this._showObjectMenu.bind(this); } - showMenu(x, y, actions) { + showMenu(x, y, actions, onDestroy) { if (this.menuComponent) { this.menuComponent.dismiss(); } @@ -46,7 +46,8 @@ class MenuAPI { let options = { x, y, - actions + actions, + onDestroy }; this.menuComponent = new Menu(options); diff --git a/src/api/menu/MenuAPISpec.js b/src/api/menu/MenuAPISpec.js index 241a0a2795..1904844bcc 100644 --- a/src/api/menu/MenuAPISpec.js +++ b/src/api/menu/MenuAPISpec.js @@ -31,6 +31,7 @@ describe ('The Menu API', () => { let x; let y; let result; + let onDestroy; beforeEach(() => { openmct = createOpenMct(); @@ -73,7 +74,9 @@ describe ('The Menu API', () => { let vueComponent; beforeEach(() => { - menuAPI.showMenu(x, y, actionsArray); + onDestroy = jasmine.createSpy('onDestroy'); + + menuAPI.showMenu(x, y, actionsArray, onDestroy); vueComponent = menuAPI.menuComponent.component; menuComponent = document.querySelector(".c-menu"); @@ -120,6 +123,12 @@ describe ('The Menu API', () => { expect(vueComponent.$destroy).toHaveBeenCalled(); }); + + it("invokes the onDestroy callback if passed in", () => { + document.body.click(); + + expect(onDestroy).toHaveBeenCalled(); + }); }); }); }); diff --git a/src/plugins/folderView/components/ListItem.vue b/src/plugins/folderView/components/ListItem.vue index 45689691d5..aa8aa881e6 100644 --- a/src/plugins/folderView/components/ListItem.vue +++ b/src/plugins/folderView/components/ListItem.vue @@ -1,7 +1,9 @@