Spaces:
Running
Running
Upload 9 files
Browse files- src/views/InstructorView.js +13 -3
src/views/InstructorView.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
| 1 |
import { createRoom, subscribeToRoom, getChallenges, resetProgress, removeUser } from "../services/classroom.js";
|
| 2 |
import { signInWithGoogle, signInWithGoogleRedirect, signOutUser, checkInstructorPermission, getInstructors, addInstructor, updateInstructor, removeInstructor } from "../services/auth.js";
|
|
|
|
|
|
|
| 3 |
import { generateMonsterSVG, getNextMonster, MONSTER_DEFS } from "../utils/monsterUtils.js";
|
| 4 |
|
| 5 |
// Load html-to-image dynamically (Better support than html2canvas)
|
|
@@ -402,9 +404,17 @@ export function setupInstructorEvents() {
|
|
| 402 |
// Attach listener if button exists
|
| 403 |
const retryBtn = document.getElementById('redirect-login-btn');
|
| 404 |
if (retryBtn) {
|
| 405 |
-
retryBtn.addEventListener('click', () => {
|
| 406 |
-
localStorage.setItem('vibecoding_redirect_login', 'true');
|
| 407 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 408 |
});
|
| 409 |
}
|
| 410 |
|
|
|
|
| 1 |
import { createRoom, subscribeToRoom, getChallenges, resetProgress, removeUser } from "../services/classroom.js";
|
| 2 |
import { signInWithGoogle, signInWithGoogleRedirect, signOutUser, checkInstructorPermission, getInstructors, addInstructor, updateInstructor, removeInstructor } from "../services/auth.js";
|
| 3 |
+
import { auth } from "../services/firebase.js";
|
| 4 |
+
import { setPersistence, browserLocalPersistence } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js"; // Direct import for forceful persistence
|
| 5 |
import { generateMonsterSVG, getNextMonster, MONSTER_DEFS } from "../utils/monsterUtils.js";
|
| 6 |
|
| 7 |
// Load html-to-image dynamically (Better support than html2canvas)
|
|
|
|
| 404 |
// Attach listener if button exists
|
| 405 |
const retryBtn = document.getElementById('redirect-login-btn');
|
| 406 |
if (retryBtn) {
|
| 407 |
+
retryBtn.addEventListener('click', async () => {
|
| 408 |
+
localStorage.setItem('vibecoding_redirect_login', 'true');
|
| 409 |
+
try {
|
| 410 |
+
const { auth } = await import("../services/firebase.js");
|
| 411 |
+
const { setPersistence, browserLocalPersistence } = await import("firebase/auth");
|
| 412 |
+
await setPersistence(auth, browserLocalPersistence); // Force persistence
|
| 413 |
+
console.log("Persistence set to LOCAL");
|
| 414 |
+
await signInWithGoogleRedirect();
|
| 415 |
+
} catch (e) {
|
| 416 |
+
alert("跳轉失敗: " + e.message);
|
| 417 |
+
}
|
| 418 |
});
|
| 419 |
}
|
| 420 |
|