안녕하세요,
이 새로운 기능, 정말 좋습니다!
Full App Embed 설정을 시도해 보고 있는데, 로그인 포함 모든 것이 정상적으로 작동하는 것 같습니다.
유일한 문제는 '답장’을 클릭할 때 아무 반응이 없다는 점입니다. 작성창/텍스트 영역이 표시되지 않습니다.
브라우저 콘솔에서도 관련 에러를 찾을 수 없었습니다.
설정에 놓친 부분이 있을까요?
감사합니다!
안녕하세요,
이 새로운 기능, 정말 좋습니다!
Full App Embed 설정을 시도해 보고 있는데, 로그인 포함 모든 것이 정상적으로 작동하는 것 같습니다.
유일한 문제는 '답장’을 클릭할 때 아무 반응이 없다는 점입니다. 작성창/텍스트 영역이 표시되지 않습니다.
브라우저 콘솔에서도 관련 에러를 찾을 수 없었습니다.
설정에 놓친 부분이 있을까요?
감사합니다!
컴퓨터를 거의 망가뜨릴 뻔한 끝에 우회책을 찾았어요 — 아마도 이상적인 방법은 아닐 거예요 ![]()
Full App Embed 안에서 Reply를 클릭하면, composer가 실제로 DOM(#reply-control.open)에서 올바르게 열리긴 하는데, 어떤 이유에선지 display: none 상태로 남아 있는 것 같아요.
브라우저 콘솔에서 확인해 보니, composer는 존재했지만 계산된 display 값이 "none"이었어요. 수동으로 다음을 실행해 봤죠:
document.querySelector('#reply-control').style.setProperty('display', 'block', 'important');
그러자 즉시 composer가 표시되고 모든 것이 정상적으로 작동했어요.
우회책으로, Discourse 테마에 다음 JS를 추가하면 제 경우엔 문제가 해결됩니다:
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();
});
이것은 문제를 완전히 해결하는 것 같고, 정상적인 Discourse 인터페이스에 영향을 주지 않도록 우회책을 embed-mode로 제한했어요.
물론 이것이 장기적으로 이상적인 해결책은 아닐 거예요. 하지만 Full App Embed에서 열린 composer가 display: none 상태로 남아 있는 원인을 파악하는 데 도움이 되길 바랍니다.
AMD: Building One Developer Community 에서 해당 문제가 발생하지 않는다면, 이는 사용자의 환경에서 발생한 문제일 수 있습니다.