Lashtw commited on
Commit
ce3fd2a
·
verified ·
1 Parent(s): 246c1a8

Upload 9 files

Browse files
Files changed (2) hide show
  1. src/main.js +4 -0
  2. src/views/InstructorView.js +14 -1
src/main.js CHANGED
@@ -52,6 +52,10 @@ function handleRoute() {
52
  navigateTo('admin');
53
  return;
54
  }
 
 
 
 
55
 
56
  // Auto-login check
57
  const roomCode = localStorage.getItem('vibecoding_room_code');
 
52
  navigateTo('admin');
53
  return;
54
  }
55
+ if (hash === 'instructor') {
56
+ navigateTo('instructor');
57
+ return;
58
+ }
59
 
60
  // Auto-login check
61
  const roomCode = localStorage.getItem('vibecoding_room_code');
src/views/InstructorView.js CHANGED
@@ -171,7 +171,8 @@ export function setupInstructorEvents() {
171
  const isValid = await verifyInstructorPassword(pwdInput.value);
172
  if (isValid) {
173
  authModal.classList.add('hidden');
174
- // Store session to avoid re-login on reload (Optional, for now just per session)
 
175
  } else {
176
  alert('密碼錯誤');
177
  pwdInput.value = '';
@@ -589,12 +590,24 @@ export function setupInstructorEvents() {
589
  }
590
  });
591
 
 
 
 
 
 
 
 
 
 
 
 
592
  function enterRoom(roomCode) {
593
  createContainer.classList.add('hidden');
594
  roomInfo.classList.remove('hidden');
595
  dashboardContent.classList.remove('hidden');
596
  displayRoomCode.textContent = roomCode;
597
  localStorage.setItem('vibecoding_instructor_room', roomCode);
 
598
 
599
  // Subscribe to updates
600
  subscribeToRoom(roomCode, (students) => {
 
171
  const isValid = await verifyInstructorPassword(pwdInput.value);
172
  if (isValid) {
173
  authModal.classList.add('hidden');
174
+ // Store session to avoid re-login on reload
175
+ sessionStorage.setItem('vibecoding_instructor_auth', 'true');
176
  } else {
177
  alert('密碼錯誤');
178
  pwdInput.value = '';
 
590
  }
591
  });
592
 
593
+ // Check Previous Session
594
+ if (sessionStorage.getItem('vibecoding_instructor_auth') === 'true') {
595
+ authModal.classList.add('hidden');
596
+ }
597
+
598
+ // Check Active Room State
599
+ const activeRoom = sessionStorage.getItem('vibecoding_instructor_in_room');
600
+ if (activeRoom === 'true' && savedRoomCode) {
601
+ enterRoom(savedRoomCode);
602
+ }
603
+
604
  function enterRoom(roomCode) {
605
  createContainer.classList.add('hidden');
606
  roomInfo.classList.remove('hidden');
607
  dashboardContent.classList.remove('hidden');
608
  displayRoomCode.textContent = roomCode;
609
  localStorage.setItem('vibecoding_instructor_room', roomCode);
610
+ sessionStorage.setItem('vibecoding_instructor_in_room', 'true');
611
 
612
  // Subscribe to updates
613
  subscribeToRoom(roomCode, (students) => {