refactor(nav): remove stencil nav delegate as a component

This commit is contained in:
Brandy Carney
2017-11-30 12:35:36 -05:00
parent 55839e27d5
commit eef1ac6293
4 changed files with 7 additions and 47 deletions

View File

@ -1818,36 +1818,6 @@ declare global {
}
import {
StencilNavDelegate as StencilIonNavDelegate
} from './components/nav-controller/stencil-nav-delegate';
declare global {
interface HTMLStencilIonNavDelegateElement extends StencilIonNavDelegate, HTMLElement {
}
var HTMLStencilIonNavDelegateElement: {
prototype: HTMLStencilIonNavDelegateElement;
new (): HTMLStencilIonNavDelegateElement;
};
interface HTMLElementTagNameMap {
"stencil-ion-nav-delegate": HTMLStencilIonNavDelegateElement;
}
interface ElementTagNameMap {
"stencil-ion-nav-delegate": HTMLStencilIonNavDelegateElement;
}
namespace JSX {
interface IntrinsicElements {
"stencil-ion-nav-delegate": JSXElements.StencilIonNavDelegateAttributes;
}
}
namespace JSXElements {
export interface StencilIonNavDelegateAttributes extends HTMLAttributes {
}
}
}
import {
Nav as IonNav
} from './components/nav/nav';

View File

@ -1,12 +1,6 @@
import { Component, Method } from '@stencil/core';
import { FrameworkDelegate, Nav, ViewController } from '../../index';
@Component({
tag: 'stencil-ion-nav-delegate'
})
export class StencilNavDelegate implements FrameworkDelegate {
@Method()
export class DomFrameworkDelegate implements FrameworkDelegate {
attachViewToDom(nav: Nav, enteringView: ViewController): Promise<any> {
return new Promise((resolve) => {
const usersElement = document.createElement(enteringView.component) as HTMLElement;
@ -17,7 +11,6 @@ export class StencilNavDelegate implements FrameworkDelegate {
});
}
@Method()
removeViewFromDom(nav: Nav, leavingView: ViewController): Promise<any> {
nav.element.removeChild(leavingView.element);
return Promise.resolve();

View File

@ -2,7 +2,7 @@ import { Component, Element, Method, Prop } from '@stencil/core';
import { Animation, AnimationController, ComponentDataPair, FrameworkDelegate, Nav, NavOptions, ViewController } from '../../index';
import { isReady } from '../../utils/helpers';
import { DomFrameworkDelegate } from './dom-framework-delegate';
import {
insert as insertImpl,
@ -115,13 +115,10 @@ export function hydrateDelegate(navController: NavController): Promise<Framework
if (navController.delegate) {
return Promise.resolve(navController.delegate);
}
// no delegate is set, so fall back to inserting the stencil-ion-nav-delegate
const element = document.createElement('stencil-ion-nav-delegate');
document.body.appendChild(element);
return isReady(element).then(() => {
defaultDelegate = element as any as FrameworkDelegate;
return defaultDelegate;
});
// no delegate is set, so fall back to using the DomFrameworkDelegate
defaultDelegate = new DomFrameworkDelegate();
return Promise.resolve(defaultDelegate);
}
export function hydrateAnimationController(animationController: AnimationController): Promise<Animation> {

View File

@ -37,7 +37,7 @@ exports.config = {
{ components: ['ion-range', 'ion-range-knob']},
{ components: ['ion-tabs', 'ion-tab', 'ion-tabbar', 'ion-tab-button', 'ion-tab-highlight'] },
{ components: ['ion-toggle'] },
{ components: ['ion-nav', 'ion-nav-controller', 'stencil-ion-nav-delegate'] },
{ components: ['ion-nav', 'ion-nav-controller'] },
{ components: ['ion-toast', 'ion-toast-controller'] },
],
collections: [