Commit Graph

19 Commits

Author SHA1 Message Date
Sean Perkins
1f06be4a31 fix(nav): root component is mounted with root params (#27676)
Issue number: Resolves #27146

---------

<!-- 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. -->

When an `ion-nav` is presented multiple times in an overlay, the user's
`root` component will attempt to be attached twice. This results in the
view being mounted without the `rootParams` being defined, causing an
exception in a user's application.

This behavior occurs due to the `root` watch callback firing twice. The
second time the `ion-nav` is presented in an overlay, the watch callback
will execute _before_ `componentDidLoad` fires. This results in the
watch callback firing twice, once from the underlying change detection
and the second time from [manually calling the
function](https://github.com/ionic-team/ionic-framework/blob/main/core/src/components/nav/nav.tsx#L115)
from `componentDidLoad`.

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

- `ion-nav` includes a new flag to track when `componentDidLoad`
executes. This allows us to prevent the behavior of the `rootChanged`
callback from happening when the component has not loaded.
- `ion-nav` consistently attaches the `rootParams` to the `root`
component.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- 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. -->

Dev-build: `7.0.15-dev.11687924603.10a1e477`.

### How to test

You can install against the reproduction app in the linked issue to
verify the behavior before and after.
- Before, the app will throw an exception when presenting the modal the
second time.
- After, the app will not throw an exception when presenting the modal
the second time. Information that you fill out on the main screen form
will be rendered inside the modal content.
2023-06-28 15:27:25 +00:00
Sean Perkins
f2b22ac61c chore(angular): test app uses v16 dependencies (#27380)
Issue number:  FW-4092

---------

<!-- 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. -->

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

- Updates the Angular 16 test app to the official dependencies
- Removes the legacy peer dependency install flag (needed during the RC
cycle)

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- 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. -->
2023-05-04 19:17:08 +00:00
Sean Perkins
e501ac001c chore: angular test apps serve in dev mode (#27270)
Issue number: N/A

---------

<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

<!-- 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. -->

When adding the Angular 16 test infrastructure, I accidentally regressed
ng14/ng15 test apps to run in production mode when serving locally.

This resulted in slower serve time and the vendor code being code split,
making it difficult to debug locally.

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

- Angular test apps run in dev mode when served locally
- Angular test apps run in prod mode when built with `npm run build`

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- 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. -->

We can share the same `angular.json` across all the major versions of
Angular we currently support.
2023-04-25 16:16:20 +00:00
Sean Perkins
6f910576e2 chore: add angular 16 test infrastructure (#27209)
<!-- Please refer to our contributing documentation for any questions on
submitting a pull request, or let us know here if you need any help:
https://ionicframework.com/docs/building/contributing -->

<!-- Some docs updates need to be made in the `ionic-docs` repo, in a
separate PR. See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#modifying-documentation
for details. -->

<!-- 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. -->


<!-- Issues are required for both bug fixes and features. -->
Issue URL: Internal


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

- Adds Angular 16 test app
- Introduces version test to validate which major version of Angular is
being tested

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- 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. -->
2023-04-19 15:27:04 +00:00
Liam DeBeasi
8860a11de7 chore(): sync with main 2023-03-17 17:26:39 -04:00
Sean Perkins
c17d1d8b88 chore(test-apps): set minimum node version to 16 (#26960) 2023-03-15 11:04:55 -04:00
Sean Perkins
1dee16f3a2 feat(angular,angular-server): angular v14 minimum support (#26822)
BREAKING CHANGE:

Angular v14 is now required to use `@ionic/angular` and `@ionic/angular-server`. Upgrade your project to Angular v14 by following the [Angular v14 update guide](https://update.angular.io/?l=3&v=13.0-14.0).

The dev-preview `environmentInjector` property has been removed from `ion-tabs` and `ion-router-outlet`. Standalone component routing is now available without additional custom configuration. Remove the `environmentInjector` property from your `ion-tabs` and `ion-router-outlet` components.
2023-02-22 12:33:49 -05:00
Sean Perkins
acb12b36ee Merge remote-tracking branch 'origin/main' into chore/sync-7.0-with-main-12-05-22 2022-12-05 11:25:10 -05:00
Sean Perkins
dd727dbd44 chore(angular): remove unused dep from test apps (#26328) 2022-11-21 15:15:44 -05:00
Sean Perkins
124e1b505f chore(angular): test app support for angular 15 (#26313) 2022-11-21 13:51:13 -05:00
Sean Perkins
c149b42d0b Merge remote-tracking branch 'origin/main' into sync-7-11-15-22 2022-11-15 15:40:21 -05:00
Liam DeBeasi
0f8b26f767 refactor(ci): do not cache node modules (#26265) 2022-11-14 13:55:46 -05:00
Liam DeBeasi
b470a307e3 chore(): sync with main 2022-11-08 13:13:46 -05:00
Sean Perkins
9f0b30e460 test(angular): ng15 test infrastructure (#26197) 2022-11-03 10:40:24 -04:00
Sean Perkins
d1fb7b039b feat(range): ionChange will only emit from user committed changes (#26089) 2022-10-24 16:13:48 -04:00
Liam DeBeasi
f1cdf18316 chore(): sync with main: 2022-10-11 11:38:27 -04:00
Liam DeBeasi
34c4137868 feat(select): ionChange will only emit from user committed changes (#26066)
BREAKING CHANGE:

`ionChange` is no longer emitted when the `value` of `ion-select` is modified externally. `ionChange` is only emitted from user committed changes, such as confirming a selected option in the select's overlay.
2022-10-10 09:36:51 -04:00
Sean Perkins
3c84d48cfa feat(angular): use standalone components with routing (#25589)
Resolves #25404
2022-08-30 10:38:16 -04:00
Liam DeBeasi
08dd3e277b test(angular): add support for multi-version testing (#25665) 2022-08-18 16:46:15 -04:00