Skip to content
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

[4.0.0-beta.17] Angular's Location.back() has no navigation animation #16569

Closed
KevinKelchen opened this issue Dec 3, 2018 · 6 comments
Closed
Labels
package: angular @ionic/angular package type: bug a confirmed bug report

Comments

@KevinKelchen
Copy link

KevinKelchen commented Dec 3, 2018

Bug Report

Ionic Info

Ionic:

   ionic (Ionic CLI)             : 4.5.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.0.0-beta.19
   @angular-devkit/build-angular : 0.10.7
   @angular-devkit/schematics    : 7.0.7
   @angular/cli                  : 7.0.7
   @ionic/angular-toolkit        : 1.2.0

System:

   NodeJS : v10.13.0 (/usr/local/bin/node)
   npm    : 6.4.1
   OS     : macOS Mojave

Describe the Bug
Using Angular's Location.back() has no navigation animation instead of the back navigation animation.

Steps to Reproduce
Steps to reproduce the behavior:

  1. Clone this repo on your machine: https://github.com/KevinKelchen/ionic4-stack-page-reuse . It is a slightly modified version of the sidemenu Angular stater template. You will need to switch to the custom-back-button branch.
  2. In the terminal, path into the repo root and run npm i.
  3. Run ionic serve.
  4. Open the Chrome DevTools and click the Toggle device toolbar button to simulate a mobile device. From the device dropdown choose an iOS device such as an iPhone X.
    • Choosing an iOS device will use the iOS styling mode. This issue is present in both modes; it's just that the iOS styling mode makes the navigation animation direction used more obvious than the default Material Design navigation animation.
  5. Click the Menu icon and then List.
  6. Click Item 1 to forward navigate to the detail screen for Item 1.
  7. Click Item 2 to forward navigate to the detail screen for Item 2.
  8. Click Item 3 to forward navigate to the detail screen for Item 3.
  9. Click Item 4 to forward navigate to the detail screen for Item 4.
  10. Notice the in-app Back button.
  11. Click the in-app Back button and watch the navigation animation. You will see as you continue to click the Back button that it uses no navigation animation even though it's using Location.back() to go back in the browser history stack.

Related Code
A sample application has been provided. See the Steps to Reproduce above.

Expected Behavior
I expected that using Angular's Location.back() to navigate back in the browser's history stack would use the back navigation animation instead of no navigation animation.

Additional Context
See the Steps to Reproduce above for the rationale for using a custom Back button and the related GitHub issues. This behavior change was introduced in Beta 17--perhaps related to fixing #16367.

FWIW, using the Android back button does seem to animate appropriately as does the ion-back-button. The browser back/forward buttons have no navigation animation but that seems appropriate given that it's in a browser context.


Thanks again for all that you do in making a great framework! 😀

@paulstelzer
Copy link
Contributor

Related to #15181

@amitairos
Copy link

+1 can confirm this also

@KevinKelchen
Copy link
Author

KevinKelchen commented Dec 17, 2018

After updating to Beta 19 there is now no longer any type of animation when using Location.back(). The sample project to reproduce the issue has been updated.

@KevinKelchen KevinKelchen changed the title [4.0.0-beta.17] Angular's Location.back() uses forward navigation animation [4.0.0-beta.17] Angular's Location.back() has no navigation animation Dec 17, 2018
@KevinKelchen
Copy link
Author

KevinKelchen commented Feb 7, 2019

I've worked around this by doing the following:

// Provide the back animation.
this.navController.setDirection("back", true, "back");

this.location.back();

You can also use NavController.back(). It similarly does a Location.back() with a navigation animation.

It was helpful to understand more about the role of the v4 NavController vs. the Angular router from the comments in this issue. I felt comfortable using the NavController in this case to get the back animation.

I'm leaving this issue open in case anyone really wants Location.back() by itself to have an animation. If not, it can be closed.

Thanks!

@liamdebeasi liamdebeasi added package: angular @ionic/angular package type: bug a confirmed bug report labels Apr 10, 2019
@liamdebeasi liamdebeasi added type: bug a confirmed bug report and removed type: bug a confirmed bug report labels Oct 27, 2023
liamdebeasi added a commit that referenced this issue Nov 16, 2023
Issue number: resolves #16569

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Ionic Angular's routing integration disables page transitions when using
the browser back/forward buttons.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Transitions now play when using the back/forward buttons

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

We're not aware of any breaking changes here, though it's possible some
developers were relying on this behavior. As a result, we are targeting
Ionic 8 to minimize any potential negative impact this fix may have on
developers.

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Supersedes #28188

Dev build: `7.5.6-dev.11700068172.15ce9b35`

Co-authored-by: hoi4 <[email protected]>
@liamdebeasi
Copy link
Contributor

Thanks for the issue. This has been resolved via #28530, and a fix will be available in the upcoming major release of Ionic. We opted to target this for Ionic 8 to minimize any impact that this change may have on developers who were relying on the old behavior.

Copy link

ionitron-bot bot commented Dec 16, 2023

Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.

@ionitron-bot ionitron-bot bot locked and limited conversation to collaborators Dec 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
package: angular @ionic/angular package type: bug a confirmed bug report
Projects
None yet
4 participants