73 lines
2.7 KiB
HTML
73 lines
2.7 KiB
HTML
<!doctype html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Seguimiento de Impuestos GLM</title>
|
|
<meta
|
|
name="description"
|
|
content="Calendario tributario GLM: recordatorios de obligaciones fiscales por país, con alertas del miércoles anterior y el mismo día."
|
|
/>
|
|
<meta name="author" content="GomezLee Marketing" />
|
|
<meta name="theme-color" content="#4F758B" />
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
<meta http-equiv="Expires" content="0" />
|
|
<script>
|
|
(() => {
|
|
const navigationKey = "glm-tax-oauth-navigation-v3";
|
|
const refreshKey = "__glm_auth_fresh";
|
|
|
|
const hasOAuthResult = () => {
|
|
const hash = new URLSearchParams(window.location.hash.replace(/^#/, ""));
|
|
return (
|
|
hash.has("access_token") ||
|
|
hash.has("refresh_token") ||
|
|
hash.has("error") ||
|
|
hash.has("error_description")
|
|
);
|
|
};
|
|
|
|
const forceFreshDocument = () => {
|
|
let pending = false;
|
|
try {
|
|
pending = Boolean(sessionStorage.getItem(navigationKey));
|
|
} catch {
|
|
pending = false;
|
|
}
|
|
|
|
if (!pending || !hasOAuthResult()) return;
|
|
|
|
const url = new URL(window.location.href);
|
|
if (url.searchParams.has(refreshKey)) return;
|
|
|
|
// Este parámetro se agrega DESPUÉS de volver de Supabase. Por eso no
|
|
// forma parte de redirect_to ni requiere una URL nueva en EasyPanel.
|
|
url.searchParams.set(refreshKey, String(Date.now()));
|
|
window.location.replace(url.toString());
|
|
};
|
|
|
|
forceFreshDocument();
|
|
window.addEventListener("pageshow", (event) => {
|
|
if (event.persisted) forceFreshDocument();
|
|
});
|
|
})();
|
|
</script>
|
|
<meta property="og:title" content="Seguimiento de Impuestos GLM" />
|
|
<meta
|
|
property="og:description"
|
|
content="Calendario tributario interno de GomezLee Marketing con recordatorios automáticos."
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<meta name="twitter:card" content="summary" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="%BASE_URL%favicon-32.png?v=glm-2026" />
|
|
<link rel="icon" type="image/png" sizes="192x192" href="%BASE_URL%favicon-192.png?v=glm-2026" />
|
|
<link rel="shortcut icon" href="%BASE_URL%favicon.ico?v=glm-2026" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="%BASE_URL%apple-touch-icon.png?v=glm-2026" />
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|