mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-15 09:34:19 +08:00

Issue number: resolves #27343 --------- <!-- 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. --> In30e3a1485d
I removed the `deepWait` call from popover/modal in custom element bundle environments (React and Vue as of writing). This had an unintended side effect where WebKit/iOS would not play the modal enter animation correctly because the inner contents are mounted mid-animation. This does not impact other mobile platforms. This only impacted the modal because popover had a patch inbe9a399eee
which causes it to wait for the JS Framework to finish mounting before proceeding with the transition. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Modal now emits `ionMount` event and waits 2 frames before proceeding with the animation. Note 1: The JS Framework overlay components were already updated to support this `ionMount` event inbe9a399eee
. I also updated the modal Angular component to listen for `ionMount`. It is not needed right now because Angular does not use the custom elements bundle and therefore does not call `ionMount` (it runs the `deepReady` function though). However, if we move Angular to support the custom elements bundle in the future this may become an issue. This behavior currently exists in the popover component for Angular too. Note 2: This does appear to be a WebKit bug since it does not happen on Android. However, this patch seems fairly safe which is why I've opted to try and fix it internally instead of waiting for a patch from Apple. | before | after | | - | - | | <video src="https://user-images.githubusercontent.com/2721089/235495325-2f258526-0c43-422b-84c3-ac4f5e228bbd.MP4"></video> | <video src="https://user-images.githubusercontent.com/2721089/235495362-9b3bb35d-782c-4a8f-ac13-8aaa8f17729b.MP4"></video> | ## 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. -->
@ionic/angular
Ionic Angular specific building blocks on top of @ionic/core components.
Related
- Ionic Core Components
- Ionic Documentation
- Ionic Forum
- Ionicons
- Stencil
- Stencil Worldwide Slack
- Capacitor
License
Testing ng-add in ionic
- Pull the latest from
main
- Build ionic/angular:
npm run build
- Run
npm link
fromionic/angular/dist
directory - Create a blank angular project
ng new add-test
// Say yes to including the router, we need it
cd add-test
- To run schematics locally, we need the schematics-cli (once published, this will not be needed)
npm install @angular-devkit/schematics-cli
- Link
@ionic/angular
npm link @ionic/angular
- Run the local copy of the ng-add schematic
$ npx schematics @ionic/angular:ng-add
You'll now be able to add ionic components to a vanilla Angular app setup.