36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
/*
|
|
* Revelação de entrada em portal.html após a animação de intro do login
|
|
* (ver login-intro.js/CLAUDE.md "Animação de intro do login"). Só dispara
|
|
* quando index.html marcou sessionStorage antes de navegar — acesso direto/
|
|
* recarregamento normal da página não passa por isso. A checagem roda como
|
|
* IIFE de topo (mesmo padrão de theme.js/applyStoredTheme) pra aplicar as
|
|
* classes antes da primeira pintura, evitando um flash do conteúdo já
|
|
* visível antes de escondê-lo.
|
|
*
|
|
* Duas classes, removidas em sequência (não juntas): primeiro
|
|
* `pid-entering-sidebar` sai (a sidebar desliza/aparece), só depois
|
|
* `pid-entering` sai (o resto do app aparece num fade) — pedido explícito
|
|
* do usuário pra ficar mais fluido, em vez das duas coisas surgirem juntas.
|
|
*/
|
|
(function pidRevealSetup() {
|
|
if (sessionStorage.getItem("pid_reveal_portal") !== "1") return;
|
|
sessionStorage.removeItem("pid_reveal_portal");
|
|
document.documentElement.classList.add("pid-entering", "pid-entering-sidebar");
|
|
})();
|
|
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
const html = document.documentElement;
|
|
if (!html.classList.contains("pid-entering")) return;
|
|
requestAnimationFrame(() => {
|
|
setTimeout(() => {
|
|
html.classList.remove("pid-entering-sidebar");
|
|
// Espera o slide da sidebar terminar (mesma duração de .sidebar em
|
|
// layout.css, 420ms) antes de revelar o resto — as duas entradas não
|
|
// devem se sobrepor.
|
|
setTimeout(() => {
|
|
html.classList.remove("pid-entering");
|
|
}, 420);
|
|
}, 120);
|
|
});
|
|
});
|