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

fix(modal, popover): opening modal and popover now works even if overlay was added to ion-app directly #24174

Merged
merged 3 commits into from
Nov 8, 2021

Conversation

liamdebeasi
Copy link
Contributor

@liamdebeasi liamdebeasi commented Nov 5, 2021

Pull request checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)
  • Build (npm run build) was run locally and any changes were pushed
  • Lint (npm run lint) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

What is the current behavior?

Issue Number: resolves #23728

What is the new behavior?

  • Modal now opens correctly when placed directly inside of ion-app
  • Shadows/backdrop opacities are correctly set for the first open modal
  • This changes also fixes a "gotcha" I missed when building declarative modals. If you are creating a modal via document.createElement, then the modal is no longer automatically removed from the DOM when the modal is dismissed. Impact on this is low since most developers use modalController.

Note: I couldn't think of a better way of doing this fix without the hasController internal prop, so if you have other ideas definitely let me know!

Does this introduce a breaking change?

  • Yes
  • No

Other information

@github-actions github-actions bot added the package: core @ionic/core package label Nov 5, 2021
Copy link
Contributor

@averyjohnston averyjohnston left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a minor change and a question below. I couldn't think of a better way than the hasController prop either; since you can theoretically insert a modal anywhere, we can't rely on location in the DOM, and there isn't an inherent difference between modal elements of different types besides the new prop. So I think we're good there.

core/src/components/modal/modal.tsx Outdated Show resolved Hide resolved
core/src/utils/overlays.ts Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: core @ionic/core package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants