C'è un modo per limitare un componente del tema solo ai moderatori?

Ho sviluppato un componente del tema specificamente per i nostri moderatori. Questo componente aggiunge una modale che ricorda ai moderatori di considerare la sospensione di un utente dopo aver gestito un flag. Ho posizionato questo componente in javascripts/discourse/admin/components/modal/remove-post.gjs e, in alto, importa AdminUser con import AdminUser from "admin/models/admin-user";.

Per i moderatori, tutto funziona perfettamente. Tuttavia, gli utenti normali riscontrano problemi. Discourse tenta ancora di caricare questo componente per tutti gli utenti e, poiché gli utenti normali non caricano alcun modulo admin/**, ciò si traduce nel seguente errore:

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

Idealmente, vorrei che questo sottocomponente (o anche solo questa importazione) venisse caricato solo per moderatori e amministratori. Esiste un modo ufficialmente supportato per garantire che un componente Glimmer all’interno di un componente del tema venga caricato solo per lo staff (moderatori/amministratori) in Discourse, in modo che gli utenti normali non incontrino mai errori di moduli mancanti per importazioni specifiche dell’amministratore?

2 Mi Piace

Al momento, la strategia migliore è usare optionalRequire in questo modo:

Stiamo lavorando molto sui nostri sistemi di build JS in questo momento, quindi è probabile che questo debba cambiare in futuro. Se ciò accadrà, ci sarà un messaggio di deprecazione con istruzioni per l’aggiornamento.

4 Mi Piace

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