Devo estar fazendo algo muito estúpido, mas sou incapaz de ver. Espero que postar aqui me faça ver para que eu possa excluir isso antes que mais alguém saiba o quão estúpido sou.
“HELLO WORLD” deveria estar sendo renderizado na página inicial. Vejo “THIS IS THE HOMEPAGE” no console. Sei que está sendo executado. Mas não está lá.
Então tentei adicionar “Extra item” porque não tinha outras ideias. Também não está sendo renderizado.
Recebi erros antes de renomear o arquivo para .gjs, então isso é mais uma evidência de que ele está prestando atenção ao arquivo e fazendo algo acontecer.
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
// see if we're on the home page
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>);
}
});
});
Ah, meu bem! Eu realmente sabia o que era um serviço! Eu realmente sabia o que era um getter! Agora meu texto está sendo renderizado na página inicial e não em outra página (e presumivelmente em todas as outras!).