diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts index 646f19c62b..b65db33b06 100644 --- a/packages/core/src/components.d.ts +++ b/packages/core/src/components.d.ts @@ -1842,7 +1842,7 @@ declare global { import { - NavPop as IonNavPush + NavPush as IonNavPush } from './components/nav-push/nav-push'; declare global { @@ -1873,6 +1873,38 @@ declare global { } +import { + NavSetRoot as IonNavSetRoot +} from './components/nav-set-root/nav-set-root'; + +declare global { + interface HTMLIonNavSetRootElement extends IonNavSetRoot, HTMLStencilElement { + } + var HTMLIonNavSetRootElement: { + prototype: HTMLIonNavSetRootElement; + new (): HTMLIonNavSetRootElement; + }; + interface HTMLElementTagNameMap { + "ion-nav-set-root": HTMLIonNavSetRootElement; + } + interface ElementTagNameMap { + "ion-nav-set-root": HTMLIonNavSetRootElement; + } + namespace JSX { + interface IntrinsicElements { + "ion-nav-set-root": JSXElements.IonNavSetRootAttributes; + } + } + namespace JSXElements { + export interface IonNavSetRootAttributes extends HTMLAttributes { + component?: any; + data?: any; + url?: string; + } + } +} + + import { Nav as IonNav } from './components/nav/nav'; diff --git a/packages/core/src/components/nav-push/nav-push.tsx b/packages/core/src/components/nav-push/nav-push.tsx index 4120f08eb3..a3199efc0c 100644 --- a/packages/core/src/components/nav-push/nav-push.tsx +++ b/packages/core/src/components/nav-push/nav-push.tsx @@ -4,7 +4,7 @@ import { NavResult } from '../../index'; @Component({ tag: 'ion-nav-push', }) -export class NavPop { +export class NavPush { @Element() element: HTMLElement; @Prop() component: any; diff --git a/packages/core/src/components/nav-set-root/nav-set-root.tsx b/packages/core/src/components/nav-set-root/nav-set-root.tsx new file mode 100644 index 0000000000..715090f9ba --- /dev/null +++ b/packages/core/src/components/nav-set-root/nav-set-root.tsx @@ -0,0 +1,28 @@ +import { Component, Element, Listen, Prop } from '@stencil/core'; +import { NavResult } from '../../index'; + +@Component({ + tag: 'ion-nav-set-root', +}) +export class NavSetRoot { + + @Element() element: HTMLElement; + @Prop() component: any; + @Prop() url: string; + @Prop() data: any; + + @Listen('child:click') + push(): Promise { + const nav = this.element.closest('ion-nav') as HTMLIonNavElement; + if (nav) { + const toPush = this.url || this.component; + return nav.setRoot(toPush, this.data); + } + return Promise.resolve(null); + } + + render() { + return ; + } + +} diff --git a/packages/core/src/components/nav-set-root/readme.md b/packages/core/src/components/nav-set-root/readme.md new file mode 100644 index 0000000000..cbc121097b --- /dev/null +++ b/packages/core/src/components/nav-set-root/readme.md @@ -0,0 +1,45 @@ +# ion-nav-set-root + + + + + + +## Properties + +#### component + +any + + +#### data + +any + + +#### url + +string + + +## Attributes + +#### component + +any + + +#### data + +any + + +#### url + +string + + + +---------------------------------------------- + +*Built with [StencilJS](https://stenciljs.com/)* diff --git a/packages/core/src/components/nav-set-root/test/basic/index.html b/packages/core/src/components/nav-set-root/test/basic/index.html new file mode 100644 index 0000000000..2663312e64 --- /dev/null +++ b/packages/core/src/components/nav-set-root/test/basic/index.html @@ -0,0 +1,78 @@ + + + + + Nav Set Root + + + + + + + + + + + diff --git a/packages/core/src/components/nav/test/set-root/index.html b/packages/core/src/components/nav/test/set-root/index.html deleted file mode 100644 index 823c9ed9b6..0000000000 --- a/packages/core/src/components/nav/test/set-root/index.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - Nav - - - - - - - - - - -