是否有办法将主题组件限制为仅限版主?

我为我们的版主开发了一个专门的主题组件。该组件添加了一个模态框,提醒版主在处理标记后考虑暂停用户。我将此组件放置在 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.