Depuración del problema de display none en los incrustados de Discourse

Hola,
¡Gracias por esta nueva función, se ve genial!

He estado intentando configurar el Full App Embed y todo parece funcionar bien, incluido el inicio de sesión.

El único problema es que cuando hago clic en Responder, no pasa nada: no aparece el editor ni el área de texto.

Tampoco veo ningún error relacionado en la consola del navegador.

¿Me falta algo en la configuración?

¡Gracias!

Así que, después de casi romper mi computadora, he encontrado una solución temporal — probablemente no la ideal :sweat_smile:

Parece que al hacer clic en Responder dentro del Full App Embed, el compositor en realidad se abre correctamente en el DOM (#reply-control.open), pero por alguna razón permanece con display: none.

Lo confirmé en la consola del navegador: el compositor estaba presente, pero su valor de display calculado era “none”. Al ejecutar manualmente:

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

el compositor apareció de inmediato y todo funcionó con normalidad.

Como solución temporal, agregar el siguiente JS al tema de Discourse soluciona el problema para mí:

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();
});

Esto parece solucionarlo por completo, y he limitado la solución temporal al modo embed para que no afecte la interfaz normal de Discourse.

Obviamente, esto probablemente no sea la solución a largo plazo ideal, pero espero que ayude a identificar qué está causando que el compositor abierto permanezca con display: none en el Full App Embed.

Dado que esto no está ocurriendo en AMD: Building One Developer Community, es posible que se trate de un problema en tu lado.