Depurando o problema de display none em incorporações do Discourse

Oi,
Obrigado por esse novo recurso, ele parece ótimo!

Estive tentando configurar o Full App Embed e tudo parece estar funcionando bem, incluindo o login.

O único problema é que, quando clico em Responder, nada acontece — o compositor/área de texto não aparece.

Também não vejo nenhum erro relacionado no console do navegador.

Estou perdendo algo na configuração?

Obrigado!

Então, depois de quase estragar meu computador, encontrei uma solução alternativa — provavelmente não a ideal :sweat_smile:

Parece que, ao clicar em Responder dentro do Full App Embed, o compositor abre corretamente no DOM (#reply-control.open), mas, por algum motivo, permanece com display: none.

Confirmei isso no console do navegador: o compositor estava presente, mas seu valor calculado de display era “none”. Executar manualmente:

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

fez o compositor aparecer imediatamente e tudo funcionou normalmente.

Como solução alternativa, adicionar o seguinte JS ao tema do Discourse corrige o problema para mim:

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

Isso parece corrigir completamente, e limitei a solução alternativa ao embed-mode para que não afete a interface normal do Discourse.

Obviamente, isso provavelmente não é a solução de longo prazo ideal, mas espero que ajude a identificar o que está fazendo o compositor aberto permanecer com display: none no Full App Embed.

Considerando que isso não está acontecendo em AMD: Building One Developer Community, pode ser um problema do seu lado.