From 2dc36f7274eabeeaaa64624b2f44258ad9cb39c8 Mon Sep 17 00:00:00 2001 From: Dan Bucholtz Date: Thu, 24 Aug 2017 14:23:38 -0500 Subject: [PATCH] refactor(navigation): update interfaces --- .../src/components/nav-controller/nav-controller.tsx | 4 ---- packages/core/src/components/nav/nav.tsx | 11 +++++++++-- packages/core/src/index.d.ts | 2 -- packages/core/src/navigation/nav-interfaces.d.ts | 6 ++++++ packages/core/src/utils/helpers.ts | 1 + 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/core/src/components/nav-controller/nav-controller.tsx b/packages/core/src/components/nav-controller/nav-controller.tsx index a45df85cb1..5b94c95649 100644 --- a/packages/core/src/components/nav-controller/nav-controller.tsx +++ b/packages/core/src/components/nav-controller/nav-controller.tsx @@ -1,5 +1,4 @@ import { Component, Element, Method, Prop } from '@stencil/core'; -import { AnimationController, Config } from '../..'; import { ComponentDataPair, FrameworkDelegate, Nav, NavController, NavOptions, ViewController } from '../../navigation/nav-interfaces'; import { isReady } from '../../utils/helpers'; @@ -25,9 +24,6 @@ let defaultDelegate: FrameworkDelegate = null; export class NavControllerImpl implements NavController { @Element() element: HTMLElement; - - @Prop({ connect: 'ion-animation-controller' }) animationCtrl: AnimationController; - @Prop({ context: 'config' }) config: Config; @Prop() delegate: FrameworkDelegate; constructor() { diff --git a/packages/core/src/components/nav/nav.tsx b/packages/core/src/components/nav/nav.tsx index bc666f4424..5c0dd1e854 100644 --- a/packages/core/src/components/nav/nav.tsx +++ b/packages/core/src/components/nav/nav.tsx @@ -1,4 +1,4 @@ -import { Component, Element, Event, EventEmitter, Method, Prop } from '@stencil/core'; +import { Component, Element, Event, EventEmitter, Listen, Method, Prop } from '@stencil/core'; import { AnimationController, Config } from '../..'; import { ComponentDataPair, FrameworkDelegate, Nav, NavController, NavOptions, ViewController } from '../../navigation/nav-interfaces'; @@ -118,16 +118,23 @@ export class IonNav implements Nav { return getFirstView(this); } + @Listen('navInit') + navInitialized(event: any) { + console.log('got the event: ', event); + } + + render() { return ; } } export function ionViewDidLoadImpl(nav: Nav) { - nav. + nav.navInit.emit(nav); if (nav.root) { nav.setRoot(nav.root); } + } export function pushImpl(nav: Nav, component: any, data: any, opts: NavOptions) { diff --git a/packages/core/src/index.d.ts b/packages/core/src/index.d.ts index 3a8b2d7f20..a6734ab26e 100644 --- a/packages/core/src/index.d.ts +++ b/packages/core/src/index.d.ts @@ -24,8 +24,6 @@ import { SegmentButton, SegmentButtonEvent } from './components/segment-button/s import { Toast, ToastEvent, ToastOptions } from './components/toast/toast' import { ToastController } from './components/toast-controller/toast-controller' -import * as Stencil from '@stencil/core'; - import { TransitionBuilder } from './navigation/nav-interfaces'; export interface Config { diff --git a/packages/core/src/navigation/nav-interfaces.d.ts b/packages/core/src/navigation/nav-interfaces.d.ts index c01e677891..cf445e29ec 100644 --- a/packages/core/src/navigation/nav-interfaces.d.ts +++ b/packages/core/src/navigation/nav-interfaces.d.ts @@ -1,3 +1,5 @@ +import { EventEmitter } from '@stencil/core'; + import { Animation, AnimationController, @@ -25,7 +27,11 @@ export interface Nav { parent?: Nav; childNavs?: Nav[]; // TODO - make nav container root?: any; + navInit?: EventEmitter; + config?: Config; + animationCtrl?: AnimationController; + // public methods getActive(): ViewController; getPrevious(view?: ViewController): ViewController; getViews(): ViewController[]; diff --git a/packages/core/src/utils/helpers.ts b/packages/core/src/utils/helpers.ts index 169320436f..c8ffc11952 100644 --- a/packages/core/src/utils/helpers.ts +++ b/packages/core/src/utils/helpers.ts @@ -166,6 +166,7 @@ export function isReady(element: HTMLElement) { resolve(elm); }); }); +} /** @hidden */ export function deepCopy(obj: any) {