milieuinfo / webcomponent-vl-ui-cookie-consent

1 stars 0 forks source link

[BUG] - Modal niet klaar bij automatisch openen? #22

Closed driesva closed 4 years ago

driesva commented 4 years ago

Omschrijf het probleem Het lijkt dat de er moet gewacht worden tot de modal volledig klaar is (dus dressed) wanneer de consent component de modal mag openen.

In onze applicatie hadden we in onze Lit component het volgende in render:

html`<vl-cookie-consent id="cookie-consent"></vl-cookie-consent>`;

Dit geeft resulteert in volgende fout:

TypeError: element.showModal is not a function modal.js:936:19
    toggle modal.js:936
    open vl-modal.js:121
    _open vl-cookie-consent.js:317
    VlCookieConsent vl-cookie-consent.js:158

Zelf expliciet wachten met whenDefined voor cookie consent component maakt geen verschil.

Hoe te reproduceren Zie uitleg hierboven.

code snippet

Gewenst gedrag Modal die automatisch opent.

Omgeving (gelieve aan te vullen):

Extra info Misschien moet de modal een soort ready functionaliteit krijgen zoals de select? En de cookie consent opent pas de modal wanneer deze ready is.

Het in 2 stappen doen (dus niet auto), lijkt te werken als workaround:

     <vl-cookie-consent id="cookie-consent" data-vl-auto-open-disabled></vl-cookie-consent>

en

    customElements.whenDefined('vl-cookie-consent').then(() =>
        this.shadowRoot.querySelector("#cookie-consent").open()
    );

Maar dit geeft ook geen 100% garantie dat de modal dressed is op dat moment...

driesva commented 4 years ago

Voor de workaround moet wel de niet publieke functie this.shadowRoot.querySelector("#cookie-consent")._open(false) aangeroepen worden. Zoniet opent de modal altijd...

coemans commented 4 years ago

Het probleem lijkt niet reproduceerbaar te zijn op de demo pagina en in een Polymer demo app.

@driesva kan je eens kijken of het probleem ondertussen niet al opgelost is? In de releases na 3.0.0 zie ik in ieder geval niet meteen iets dat gerelateerd is. De kans lijkt me daarom klein dat het probleem opgelost zou zijn. Vermoedelijk moet ik nog iets extra doen om het lokaal te kunnen reproduceren.