Manier om een themacomponent te beperken tot alleen moderators?

Ik heb een themacomponent ontwikkeld speciaal voor onze moderators. Deze component voegt een modaal venster toe dat moderators eraan herinnert een gebruiker te schorsen na het afhandelen van een vlag. Ik heb deze component geplaatst op javascripts/discourse/admin/components/modal/remove-post.gjs, en bovenaan importeert het AdminUser met import AdminUser from \"admin/models/admin-user\";.

Voor moderators werkt alles perfect. Echter, gewone gebruikers ervaren problemen. Discourse probeert deze component nog steeds te laden voor alle gebruikers, en aangezien gewone gebruikers geen admin/** modules laden, resulteert dit in de volgende foutmelding:

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

Idealiter wil ik dat deze subcomponent (of zelfs maar deze import) alleen wordt geladen voor moderators en beheerders. Is er een officieel ondersteunde manier om ervoor te zorgen dat een Glimmer-component binnen een themacomponent alleen wordt geladen voor personeel (moderators/beheerders) in Discourse, zodat gewone gebruikers nooit foutmeldingen over ontbrekende modules voor admin-specifieke imports tegenkomen?

2 likes

Right now, the best strategy is to use optionalRequire like this:

We’re doing a lot of work on our JS build systems right now, so there’s a change this will need change in future. If it does, there will be a deprecation message with instructions to upgrade.

4 likes

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