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

bug: ion-menu compatibility with Angular ViewEncapsulation.ShadowDOM #29856

Open
3 tasks done
onexip-vanessa opened this issue Sep 11, 2024 · 0 comments
Open
3 tasks done
Labels

Comments

@onexip-vanessa
Copy link

Prerequisites

Ionic Framework Version

v8.x

Current Behavior

On Ionic Angular, the ViewEncapsulation.ShadowDOM will wrap a custom web component into its own ShadowRoot. This will break the ion-menu since we can only provide a contentId that the component uses to get the respective element via
const content = this.contentId !== undefined ? document.getElementById(this.contentId) : null;

With the elements inside the ShadowRoot, they won't be found by getElementById(), it cannot get properly linked and we receive the error message:

Menu: must have a 'content' element to listen for drag events on.

Expected Behavior

Additionally to the contentId it would be great also to be able to provide a contentElement, so that in more specific cases of ViewEncapsulation the ion-menu can still be utilized.

Steps to Reproduce

  1. Create a custom Angular web component
  2. Set the component's encapsulation to encapsulation: ViewEncapsulation.ShadowDom
  3. Add an ion-menu to the web-component and set the contentId to a respective ion-router-outlet or ion-content.

Code Reproduction URL

Ionic Info

Additional Information

No response

@ionitron-bot ionitron-bot bot added the triage label Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 participant