Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 3.2k
docs(nav): component playground for modal navigation #2463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
9405453efcdd0db27d021fe321b7fbc7f74af701cbed775fb539567d24594f054957da772410f45b76dfFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| ```html | ||
| <ion-header> | ||
| <ion-toolbar> | ||
| <ion-title>Modal Navigation</ion-title> | ||
| </ion-toolbar> | ||
| </ion-header> | ||
| <ion-content> | ||
| <ion-button id="openModal">Open Modal</ion-button> | ||
| <ion-modal #modal trigger="openModal" (willPresent)="onWillPresent()"> | ||
| <ng-template> | ||
| <ion-header> | ||
| <ion-toolbar> | ||
| <ion-title>Modal</ion-title> | ||
| <ion-buttons slot="end"> | ||
| <ion-button (click)="modal.dismiss()"> Close </ion-button> | ||
| </ion-buttons> | ||
| </ion-toolbar> | ||
| </ion-header> | ||
| <ion-content> | ||
| <ion-nav #nav></ion-nav> | ||
| </ion-content> | ||
| </ng-template> | ||
| </ion-modal> | ||
| </ion-content> | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| ```ts | ||
| import { Component, ViewChild } from '@angular/core'; | ||
| import { IonNav } from '@ionic/angular'; | ||
| import { PageOneComponent } from './page-one.component'; | ||
| @Component({ | ||
| selector: 'app-root', | ||
| templateUrl: 'app.component.html', | ||
| }) | ||
| export class AppComponent { | ||
| @ViewChild('nav') private nav: IonNav; | ||
| onWillPresent() { | ||
| this.nav.setRoot(PageOneComponent); | ||
| } | ||
| } | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| ```ts | ||
| import { NgModule } from '@angular/core'; | ||
| import { BrowserModule } from '@angular/platform-browser'; | ||
| import { RouterModule } from '@angular/router'; | ||
| import { IonicModule } from '@ionic/angular'; | ||
| import { AppComponent } from './app.component'; | ||
| import { PageOneComponent } from './page-one.component'; | ||
| import { PageTwoComponent } from './page-two.component'; | ||
| import { PageThreeComponent } from './page-three.component'; | ||
| @NgModule({ | ||
| imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], | ||
| declarations: [AppComponent, PageOneComponent, PageTwoComponent, PageThreeComponent], | ||
| bootstrap: [AppComponent], | ||
| }) | ||
| export class AppModule {} | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| ```ts | ||
| import { Component } from '@angular/core'; | ||
| import { IonNav } from '@ionic/angular'; | ||
| import { PageTwoComponent } from './page-two.component'; | ||
| @Component({ | ||
| selector: 'app-page-one', | ||
| template: ` | ||
| <ion-content class="ion-padding"> | ||
| <h1>Page One</h1> | ||
| <ion-button (click)="navigateToPageTwo()">Go to Page Two</ion-button> | ||
| </ion-content> | ||
| `, | ||
| }) | ||
| export class PageOneComponent { | ||
| constructor(private nav: IonNav) {} | ||
| navigateToPageTwo() { | ||
| this.nav.push(PageTwoComponent); | ||
| } | ||
| } | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| ```ts | ||
| import { Component } from '@angular/core'; | ||
| import { IonNav } from '@ionic/angular'; | ||
| @Component({ | ||
| selector: 'app-page-one', | ||
| template: ` | ||
| <ion-content class="ion-padding"> | ||
| <h1>Page Three</h1> | ||
| <ion-button (click)="navigateBack()">Go Back</ion-button> | ||
| <ion-button (click)="navigateToRoot()">Go to Root</ion-button> | ||
| </ion-content> | ||
| `, | ||
| }) | ||
| export class PageThreeComponent { | ||
| constructor(private nav: IonNav) {} | ||
| navigateBack() { | ||
| this.nav.pop(); | ||
| } | ||
| navigateToRoot() { | ||
| this.nav.popToRoot(); | ||
| } | ||
| } | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| ```ts | ||
| import { Component } from '@angular/core'; | ||
| import { IonNav } from '@ionic/angular'; | ||
| import { PageThreeComponent } from './page-three.component'; | ||
| @Component({ | ||
| selector: 'app-page-two', | ||
| template: ` | ||
| <ion-content class="ion-padding"> | ||
| <h1>Page Two</h1> | ||
| <ion-button (click)="navigateToPageThree()">Go to Page Three</ion-button> | ||
| </ion-content> | ||
| `, | ||
| }) | ||
| export class PageTwoComponent { | ||
| component = PageThreeComponent; | ||
| constructor(private nav: IonNav) {} | ||
| navigateToPageThree() { | ||
| this.nav.push(PageThreeComponent); | ||
| } | ||
| } | ||
| ``` |
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm seeing some weird transition animations in iOS mode: https://user-images.githubusercontent.com/90629384/184921906-98e49071-f095-4424-b437-689e636d9adb.mp4
It doesn't happen in Stackblitz, so maybe this is related to the Playground component?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a strange one... the style block that is causing this issue is:
somehow it's stripping the space within the
:nottag, as ours is:We can see that issue directly from the CDN: https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css.
I'll need to work with Liam to uncover why this is happening. I don't see this as a blocker though, as the Stackblitz examples work & when developers install the package they will not have this issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, this will be resolved once: ionic-team/ionic-framework#25767 is merged, we deploy the next patch & jsDelivr cache is purged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Word 👍