¿Alguna forma de restringir un componente de tema solo a moderadores?

He desarrollado un componente de tema específicamente para nuestros moderadores. Este componente añade un modal que recuerda a los moderadores que consideren suspender a un usuario después de gestionar un aviso. He colocado este componente en javascripts/discourse/admin/components/modal/remove-post.gjs, y en la parte superior, importa AdminUser con import AdminUser from "admin/models/admin-user";.

Para los moderadores, todo funciona perfectamente. Sin embargo, los usuarios normales están experimentando problemas. Discourse todavía intenta cargar este componente para todos los usuarios, y dado que los usuarios normales no cargan ningún módulo admin/**, esto resulta en el siguiente error:

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

Idealmente, me gustaría que este subcomponente (o incluso solo esta importación) se cargara solo para moderadores y administradores. ¿Existe alguna forma oficialmente soportada para asegurar que un componente Glimmer dentro de un componente de tema se cargue solo para el personal (moderadores/administradores) en Discourse, para que los usuarios normales nunca encuentren errores de módulos faltantes para importaciones específicas de administración?

2 Me gusta

En este momento, la mejor estrategia es usar optionalRequire de la siguiente manera:

Estamos trabajando mucho en nuestros sistemas de compilación de JS en este momento, por lo que es probable que esto necesite cambiar en el futuro. Si es así, habrá un mensaje de advertencia con instrucciones para actualizar.

4 Me gusta

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