モデレーターのみにテーマコンポーネントを制限する方法はありますか?

モデレーター専用のテーマコンポーネントを開発しました。このコンポーネントは、フラグを処理した後にモデレーターにユーザーの一時停止を検討するようリマインドするモーダルを追加します。このコンポーネントは javascripts/discourse/admin/components/modal/remove-post.gjs に配置し、先頭で import AdminUser from "admin/models/admin-user"; として AdminUser をインポートしています。

モデレーターにとっては、すべて完璧に動作します。しかし、一般ユーザーは問題を抱えています。Discourse はすべてのユーザーに対してこのコンポーネントをロードしようとしますが、一般ユーザーは admin/** モジュールをロードしないため、以下のエラーが発生します。

Error: Could not find module `admin/models/admin-user`

理想的には、このサブコンポーネント(あるいはこのインポートだけでも)がモデレーターと管理者にのみロードされるようにしたいです。Discourseにおいて、テーマコンポーネント内のGlimmerコンポーネントがスタッフ(モデレーター/管理者)にのみロードされることを保証する、公式にサポートされている方法はありますか?これにより、一般ユーザーが管理者固有のインポートに対するモジュールが見つからないエラーに遭遇することを防げます。

「いいね!」 2

現時点での最善の戦略は、次のように optionalRequire を使用することです。

現在、JavaScript のビルドシステムに多くの作業を行っているため、将来的に変更が必要になる可能性があります。その場合は、アップグレード手順を示す廃止メッセージが表示されます。

「いいね!」 4

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