こんにちは、
この新機能、ありがとうございます。とても良いですね!
Full App Embed のセットアップを試してみたところ、ログインを含むすべてが正常に動作しているようです。
唯一の問題は、Reply をクリックしても何も反応しないことです。コンポーザー(テキスト入力欄)が表示されません。
ブラウザのコンソールに関連するエラーも確認できませんでした。
設定で何か見落としていることがあるのでしょうか?
よろしくお願いします!
こんにちは、
この新機能、ありがとうございます。とても良いですね!
Full App Embed のセットアップを試してみたところ、ログインを含むすべてが正常に動作しているようです。
唯一の問題は、Reply をクリックしても何も反応しないことです。コンポーザー(テキスト入力欄)が表示されません。
ブラウザのコンソールに関連するエラーも確認できませんでした。
設定で何か見落としていることがあるのでしょうか?
よろしくお願いします!
コンピュータを壊しかけた挙句、ついにワークアラウンドを見つけました — 理想の解決策ではないかもしれませんが ![]()
Full App Embed 内で「返信」をクリックすると、コンポーザーは DOM 内で正しく開かれる(#reply-control.open)ものの、何らかの理由で display: none のままになっているようです。
ブラウザのコンソールで確認したところ、コンポーザーは存在していましたが、計算された display の値が “none” になっていました。手動で以下を実行すると:
document.querySelector('#reply-control').style.setProperty('display', 'block', 'important');
コンポーザーが即座に表示され、すべてが正常に動作しました。
ワークアラウンドとして、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 で開いたコンポーザーが display: none のままになる原因の特定にお役に立てば幸いです。
AMD: Building One Developer Community で発生していないことを考えると、あなたの環境側の問題かもしれません。