Je dois faire quelque chose de très stupide, mais je suis incapable de le voir. J’espère qu’en postant ici, je le verrai pour pouvoir le supprimer avant que quiconque d’autre ne sache à quel point je suis stupide.
« HELLO WORLD » devrait s’afficher sur la page d’accueil. Je vois « THIS IS THE HOMEPAGE » dans la console. Je sais que ça fonctionne. Mais ce n’est pas là.
Ensuite, j’ai essayé d’ajouter « Extra item » car je n’avais pas d’autres idées. Ça ne s’affiche pas non plus.
J’ai eu des erreurs avant de renommer le fichier en .gjs, c’est donc une preuve supplémentaire qu’il fait attention au fichier et qu’il fait quelque chose.
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
// voir si nous sommes sur la page d'accueil
api.onPageChange(() => {
const router = api.container.lookup("service:router");
const url = router?.currentURL;
const isHomePage = url === "/";
api.renderInOutlet("top-notices", <template>Extra item</template>);
if (isHomePage) {
console.log("THIS IS THE HOMEPAGE");
api.renderInOutlet("after-header", <template>HELLO WORLD</template>);
}
});
});
Oh, bébé ! Je savais vraiment ce qu’était un service ! Je savais vraiment ce qu’était un getter ! Maintenant, mon texte s’affiche sur la page d’accueil et non sur une autre page (et probablement sur toutes les autres !).