Debug del problema display none negli embed di Discourse

Ciao,
Grazie per questa nuova funzionalità, sembra ottima!

Ho provato a configurare il Full App Embed e tutto sembra funzionare correttamente, incluso il login.

L’unico problema è che quando clicco su Rispondi, non succede nulla: la finestra di composizione/area di testo non viene visualizzata.

Non vedo nemmeno errori correlati nella console del browser.

Sto forse trascurando qualcosa nella configurazione?

Grazie!

Quindi, dopo aver quasi rotto il mio computer, ho trovato una soluzione alternativa — probabilmente non la migliore :sweat_smile:

Sembra che, quando si fa clic su Rispondi all’interno del Full App Embed, il compositore si apre effettivamente correttamente nel DOM (#reply-control.open), ma per qualche motivo rimane display: none.

L’ho verificato nella console del browser: il compositore era presente, ma il suo valore calcolato di display era “none”. Eseguendo manualmente:

document.querySelector('#reply-control').style.setProperty('display', 'block', 'important');

il compositore è apparso immediatamente e tutto ha funzionato normalmente.

Come soluzione alternativa, l’aggiunta del seguente JS al tema di Discourse risolve il problema per me:

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
if (!document.body.classList.contains("embed-mode")) {
return;
}
const fixComposer = () => {
const composer = document.querySelector("#reply-control.open");
if (composer) {
composer.style.setProperty("display", "block", "important");
}
};
const observer = new MutationObserver(fixComposer);
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: ["class"],
});
fixComposer();
});

Questo sembra risolverlo completamente e ho limitato la soluzione alternativa alla modalità embed in modo da non influire sull’interfaccia normale di Discourse.

Ovviamente questa probabilmente non è la soluzione a lungo termine ideale, ma spero che aiuti a identificare cosa sta causando al compositore aperto di rimanere display: none nel Full App Embed.

Dato che questo non sta accadendo su AMD: Building One Developer Community, potrebbe trattarsi di un problema dal vostro lato.