Nossa abordagem atual é verificar se podemos simplesmente detectar que estamos na página de um determinado usuário através do link canônico e, se estivermos, aplicar o vídeo. Como tal, temos o seguinte:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
determineUser();
});
function determineUser() {
var pageURL = document.querySelector("link[rel='canonical']").getAttribute("href");
var isUserPage = pageURL.includes("https://www.fortressoflies.com/u/");
document.documentElement.style.setProperty('--currUsername', pageURL);
if(isUserPage)
{
document.documentElement.style.setProperty('--lastUsername', pageURL);
$('body').css('background-color', '#'+(Math.random()*0xFFFFFF<<0).toString(16));
}
}
</script>
No entanto, isso parece funcionar apenas em uma atualização completa - por algum motivo, clicar de uma página para outra não atualiza a propriedade --currUsername e, em vez de aplicar um fundo de cor aleatória às páginas de usuário, ele aplica um fundo de cor aleatória a todas as páginas se F5 foi pressionado pela última vez em uma página de usuário, enquanto não aplica nada a nenhuma página se F5 foi pressionado pela última vez em uma página que não seja de usuário.
Francamente, não tenho experiência suficiente com JavaScript para saber por que isso aconteceria - parece-me que, em uma mudança de página, a função deveria ser acionada (o que acontece), fazendo com que a variável pageURL seja atualizada, e isso deveria fazer com que a propriedade --currUsername fosse atualizada ao carregar uma página. No entanto, isso só ocorre em uma atualização completa, caso contrário, as variáveis não parecem mudar.
Alguma ideia do que estou errando aqui?