ウィンドウリサイズしないとブランドヘッダーのモバイルメニューが全展開しない

モバイルでブランドヘッダーメニューをタップした際に、左上に表示されるメニューが部分的にしか展開されない問題が発生しています。モバイルではバーが表示されないように設定しています。ハンバーガーメニューをタップすると、このようになります。

しかし、ウィンドウサイズをどちらかの方向に変更すると、完全に展開され、すべてのサブリンクが表示されます。

ウィンドウのリサイズなしで、タップ時に完全に展開されるようにするにはどうすればよいでしょうか?

フォーラムで、ハンバーガーメニューをクリックしただけでは、「menu-panel」divに「slide-in」クラスが追加されないことがわかりました。

しかし、ウィンドウのサイズを変更すると、追加され、メニューが正しく機能するようになります。

私の知る限り、「menu-panel」と「slide-in」はテーマから提供されているものではありません。しかし、「slide-in」は正しく機能するために重要であるようです。メニューが開かれたときに「slide-in」が追加されないのはなぜですか?ブラウザウィンドウのサイズを変更すると、突然追加されるのはなぜですか?

他のテーマがインストールされていない状態で、モバイルでこのコンポーネントがどのように表示されるかを示します。

これを取得するためにリサイズする必要はありませんでした。リサイズしても slide-in クラスはまったく取得できません。

Discourse 3.3 の現在のバージョンではなく、Discourse 3.2 を使用しているようです。このコンポーネントにはバージョン 3.3 に依存するアップデートがありますが、現時点ではそれらを取得できていません。

Discourse とコンポーネントをアップデートすれば、すべての問題が解決する可能性がありますが、それでも解決しない場合は、他のカスタマイズとの競合がある可能性があります。

「いいね!」 2

おっしゃる通り、Discourse 3.2.3 を使用しています。こちらの投稿から、バージョン 3.3 でも問題が発生すると思っていましたが、あなたの環境では問題ないようです。3.3 にアップグレードできるか、あるいは brand-header コンポーネントの古いバージョンをインストールできるか確認してみます。

コンポーネントがバージョン 3.3 を必要とするという情報はどこかに公開されていますか?どこにも見当たりません。

3.3 に依存するアップデートがいつ行われたか、または 3.2 で動作する最後のバージョンがいつ頃のものか、ご存知ですか?

「いいね!」 1

明示的に要求されているわけではありませんが、新しいDiscourseの機能に依存するアップデートを行う際に、テーマコンポーネントを古いDiscourseバージョンに固定し、互換性のないアップデートを受け取らないようにすることがあります。

この場合、詳細は.discourse-compatibilityファイルに記載されています。

この場合、ハッシュ12e6f76e0508b262517efd5db2d7feca261dff86のコミットに固定されます。これはhttps://github.com/discourse/discourse-brand-header/commit/12e6f76e0508b262517efd5db2d7feca261dff86です。

その変更以降、Discourseのヘッダーの動作方法の変更により、コンポーネントのコードは完全にリファクタリングされました。

これは、情報がかなり埋もれていて技術的であるという、検討すべき良い問題点を浮き彫りにしていると思います。おそらく、一部のコンポーネントは最新バージョンのDiscourseの機能が必要なためアップデートを受け取らなくなっている、というメッセージを管理パネルに追加できるかもしれません。

「いいね!」 2

コンポーネントをフォークし、コミット 12e6f76 にロールバックして、フォーラムにインストールしましたが、問題はまだ存在します。これで修正されるはずではないでしょうか?

いいえ、それはあなたがすでにピン留めされているコミットです。それ以降のものはすべて欠落しています。

「いいね!」 1

何かの勘違いをしているに違いありません。以前はこの問題はありませんでした。ある時点で、コンポーネントがDiscourse 3.3を必要とする変更を行ったため問題が発生し、コンポーネントは更新しましたが、Discourse 3.2を使用し続けています。それで合っていますか?もしそうなら、最も簡単な解決策は、Discourse 3.2で動作するコンポーネントの最後のバージョンにロールバックすることではありませんか?

コンポーネントは3.3向けの変更を受け取っていないはずです。コンポーネントが特定のDiscourseバージョンにピン留めされている場合、Discourseが更新されるまで、そのコンポーネントは実質的に現在の状態でフリーズされます。

ですから、これを行う必要はないはずです…ピン留めにより、自動的に最新の互換性のあるバージョンに留まるはずですが、このバグはすでに使用中のコンポーネントのバージョンに存在していた可能性があります。

「いいね!」 1

これで理解できました…賢いですね。メンテナーがコンポーネントを3.2で正常に動作させるための努力をしないと仮定しても安全でしょうか?

フォーラムのコピーを作成し、3.3にアップグレードしました。はい、これで問題は解決します。ライブフォーラムで3.3にアップグレードできるかどうか、管理者に確認しています。

ありがとうございます!

「いいね!」 1

はい、残念ながら、テーマコンポーネントを最新バージョンのDiscourseで保守する帯域幅しかありません。そのため、古いバージョンでは時々このようなことが起こり得ます。

ライブフォーラムを3.3にアップデートすることができ、突然動作するようになりました。改めて感謝いたします!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.