Spaces:
Running
Running
Update index.html
Browse files- index.html +23 -16
index.html
CHANGED
|
@@ -456,32 +456,39 @@
|
|
| 456 |
? browserLocalPersistence
|
| 457 |
: browserSessionPersistence;
|
| 458 |
await setPersistence(auth, persistence);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 459 |
|
| 460 |
await signInWithPopup(auth, provider);
|
| 461 |
} catch (error) {
|
| 462 |
-
console.warn("
|
| 463 |
-
|
| 464 |
-
|
| 465 |
-
|
| 466 |
-
// Códigos típicos: auth/popup-blocked, auth/popup-closed-by-user, auth/cancelled-popup-request
|
| 467 |
-
const popupIssues = new Set(['auth/popup-blocked', 'auth/popup-closed-by-user', 'auth/cancelled-popup-request']);
|
| 468 |
-
try {
|
| 469 |
-
if (popupIssues.has(error?.code)) {
|
| 470 |
if (loginMessage) {
|
| 471 |
loginMessage.innerText = 'Redirigiendo a Google...';
|
| 472 |
loginMessage.classList.remove('text-red-500');
|
| 473 |
}
|
|
|
|
|
|
|
| 474 |
await signInWithRedirect(auth, provider);
|
| 475 |
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 476 |
}
|
| 477 |
-
} catch (redirectErr) {
|
| 478 |
-
console.error("Error en signInWithRedirect:", redirectErr);
|
| 479 |
-
}
|
| 480 |
-
|
| 481 |
-
console.error("Error con Google Sign-In:", error);
|
| 482 |
-
if (loginMessage) {
|
| 483 |
-
loginMessage.innerText = `Error con Google: ${error.message}`;
|
| 484 |
-
loginMessage.classList.add('text-red-500');
|
| 485 |
}
|
| 486 |
} finally {
|
| 487 |
// Rehabilitar si seguimos en la misma página (si hubo redirect, no se ejecutará esto)
|
|
|
|
| 456 |
? browserLocalPersistence
|
| 457 |
: browserSessionPersistence;
|
| 458 |
await setPersistence(auth, persistence);
|
| 459 |
+
// En Hugging Face (Static) forzamos redirect para evitar bloqueos/doble popup
|
| 460 |
+
if (isHFStatic) {
|
| 461 |
+
if (loginMessage) {
|
| 462 |
+
loginMessage.innerText = 'Redirigiendo a Google...';
|
| 463 |
+
}
|
| 464 |
+
await signInWithRedirect(auth, provider);
|
| 465 |
+
return;
|
| 466 |
+
}
|
| 467 |
|
| 468 |
await signInWithPopup(auth, provider);
|
| 469 |
} catch (error) {
|
| 470 |
+
console.warn("Google Sign-In con popup falló:", error?.code, error?.message);
|
| 471 |
+
// Solo si el problema es popup bloqueado, hacemos redirect (evita doble popup)
|
| 472 |
+
if (error?.code === 'auth/popup-blocked') {
|
| 473 |
+
try {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 474 |
if (loginMessage) {
|
| 475 |
loginMessage.innerText = 'Redirigiendo a Google...';
|
| 476 |
loginMessage.classList.remove('text-red-500');
|
| 477 |
}
|
| 478 |
+
const provider = new GoogleAuthProvider();
|
| 479 |
+
provider.setCustomParameters({ prompt: 'select_account' });
|
| 480 |
await signInWithRedirect(auth, provider);
|
| 481 |
return;
|
| 482 |
+
} catch (redirectErr) {
|
| 483 |
+
console.error("Error en signInWithRedirect:", redirectErr);
|
| 484 |
+
}
|
| 485 |
+
} else if (error?.code !== 'auth/popup-closed-by-user') {
|
| 486 |
+
// Si el usuario cerró el popup, no mostrar error intrusivo
|
| 487 |
+
console.error("Error con Google Sign-In:", error);
|
| 488 |
+
if (loginMessage) {
|
| 489 |
+
loginMessage.innerText = `Error con Google: ${error.message}`;
|
| 490 |
+
loginMessage.classList.add('text-red-500');
|
| 491 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 492 |
}
|
| 493 |
} finally {
|
| 494 |
// Rehabilitar si seguimos en la misma página (si hubo redirect, no se ejecutará esto)
|