portal_publico/static/js/login-logo-blink.js

37 lines
1.4 KiB
JavaScript

/*
* Ícone "P.I.D." do card de login (`#login-logo-btn`). Fora do tema sazonal
* Halloween: clicar faz os olhos do disquete piscarem
* (`.pid-icon-eye`/`pidIconBlink` em base.css, mesmo mecanismo da logo da
* sidebar em sidebar-brand.js). Durante o Halloween
* (`pidIsHalloweenActive()`, seasonal-theme.js): o ícone vira o vampiro
* (`pidApplyVampireIcon`) e o clique dispara a animação de "susto"
* (`pidTriggerVampireScare`, `.is-scaring` em base.css) em vez da piscada.
* Sem navegação nenhuma aqui — já estamos na tela de login, é só um toque de
* graça ao clicar no mascote.
*/
document.addEventListener("DOMContentLoaded", () => {
const btn = document.getElementById("login-logo-btn");
if (!btn) return;
const halloween = typeof pidIsHalloweenActive === "function" && pidIsHalloweenActive();
if (halloween) {
pidApplyVampireIcon(btn.querySelector(".login-card__logo"));
if (typeof pidApplySeasonalFavicon === "function") pidApplySeasonalFavicon();
if (typeof pidApplyHalloweenCobwebs === "function") pidApplyHalloweenCobwebs("pw-cobwebs-login");
}
btn.addEventListener("click", () => {
if (halloween) {
pidTriggerVampireScare(btn);
return;
}
btn.querySelectorAll(".pid-icon-eye").forEach((eye) => {
eye.classList.remove("is-blinking");
void eye.getBoundingClientRect();
eye.classList.add("is-blinking");
});
});
});