Restituisci un widget:
Quello che potresti fare è restituire il tuo widget personalizzato a api.decorateWidget, che ti darà molto più controllo in termini di applicazione di attributi, stato, azioni, ecc.
Quindi potresti fare:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
Quindi all’interno di javascripts/discourse/widgets/custom-menu-links.js, crea un widget usando l’helper createWidget:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
Dai un’occhiata a questo argomento per conoscere alcune delle funzionalità dei Widget:
Ho usato i widget parecchio nel mio componente tema dropdown header, potresti trovare alcuni del codice utile.
Aggiungere target=“_blank”
Lo aggiungi all’oggetto attributi:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);