From d8f2fa73f3215a20bf75607e996ee5e03e04b4e3 Mon Sep 17 00:00:00 2001 From: Manuel Mtz-Almeida Date: Fri, 15 Sep 2017 15:06:01 -0500 Subject: [PATCH] fix(menu): getInstance() is not longer needed --- .../src/components/menu/menu-controller.ts | 5 ----- packages/core/src/components/menu/menu.tsx | 16 +++++++------- .../core/src/components/menu/tests/basic.html | 21 +++++++++---------- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/packages/core/src/components/menu/menu-controller.ts b/packages/core/src/components/menu/menu-controller.ts index 0d8924da56..f343987ffb 100644 --- a/packages/core/src/components/menu/menu-controller.ts +++ b/packages/core/src/components/menu/menu-controller.ts @@ -21,11 +21,6 @@ export class MenuController { this.registerAnimation('overlay', MenuOverlayAnimation); } - @Method() - getInstance(): MenuController { - return this; - } - /** * Programatically open the Menu. * @param {string} [menuId] Optionally get the menu by its id, or side. diff --git a/packages/core/src/components/menu/menu.tsx b/packages/core/src/components/menu/menu.tsx index 0e2fc71d21..5045f104a9 100644 --- a/packages/core/src/components/menu/menu.tsx +++ b/packages/core/src/components/menu/menu.tsx @@ -3,8 +3,9 @@ import { Config, Animation } from '../../index'; import { MenuController } from './menu-controller'; import { isRightSide, Side, assert, checkEdgeSide } from '../../utils/helpers'; -export type Lazy = - {[P in keyof T]: (...args: any[]) => Promise; }; +export type Lazy = T & + { componentOnReady(): Promise } & + { componentOnReady(done: (cmp: T) => void): void } @Component({ tag: 'ion-menu', @@ -113,7 +114,8 @@ export class Menu { } ionViewWillLoad() { - return this.lazyMenuCtrl.getInstance().then(menu => this.menuCtrl = menu); + return this.lazyMenuCtrl.componentOnReady() + .then(menu => this.menuCtrl = menu); } /** @@ -205,7 +207,7 @@ export class Menu { onBackdropClick(ev: UIEvent) { ev.preventDefault(); ev.stopPropagation(); - this.menuCtrl.close(); + this.close(); } /** @@ -235,7 +237,7 @@ export class Menu { return Promise.resolve(this._isOpen); } this._before(); - this.prepareAnimation() + return this.prepareAnimation() .then(() => this._startAnimation(shouldOpen, animated)) .then(() => { this._after(shouldOpen); @@ -558,8 +560,8 @@ export class Menu { const onBackdropClick = this.onBackdropClick.bind(this); if (shouldAdd && !this._unregBdClick) { - this._unregBdClick = Context.addListener(this._cntElm, 'click', onBackdropClick, { capture: true }); - this._unregCntClick = Context.addListener(this._cntElm, 'click', onBackdropClick, { capture: true }); + this._unregBdClick = Context.addListener(this._backdropEle, 'click', onBackdropClick, { capture: true }); + this._unregCntClick = Context.addListener(this._backdropEle, 'click', onBackdropClick, { capture: true }); } else if (!shouldAdd && this._unregBdClick) { this._unregBdClick(); diff --git a/packages/core/src/components/menu/tests/basic.html b/packages/core/src/components/menu/tests/basic.html index 7ca42a32aa..ca9bd14981 100644 --- a/packages/core/src/components/menu/tests/basic.html +++ b/packages/core/src/components/menu/tests/basic.html @@ -116,20 +116,19 @@ + + function openRight() { + console.log('Open right menu'); + menu.open('right'); + } +