diff --git a/web-ui/js/auth-check.js b/web-ui/js/auth-check.js index d43e51a..0f243be 100644 --- a/web-ui/js/auth-check.js +++ b/web-ui/js/auth-check.js @@ -1,5 +1,20 @@ // /js/auth-check.js -import { isLoggedIn, getUser, clearAuthData } from './auth.js'; +// auth.js의 함수들을 직접 구현 (모듈 의존성 제거) + +function isLoggedIn() { + const token = localStorage.getItem('token'); + return token && token !== 'undefined' && token !== 'null'; +} + +function getUser() { + const user = localStorage.getItem('user'); + return user ? JSON.parse(user) : null; +} + +function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); +} // 즉시 실행 함수로 스코프를 보호하고 로직을 실행 (function() { diff --git a/web-ui/js/modern-dashboard.js b/web-ui/js/modern-dashboard.js index c421f54..5ffba6c 100644 --- a/web-ui/js/modern-dashboard.js +++ b/web-ui/js/modern-dashboard.js @@ -44,6 +44,21 @@ const elements = { // ========== 초기화 ========== // document.addEventListener('DOMContentLoaded', async () => { + // API 함수가 로드될 때까지 기다림 + let retryCount = 0; + const maxRetries = 50; // 5초 대기 + + while (!window.apiCall && retryCount < maxRetries) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + console.error('❌ API 함수를 로드할 수 없습니다.'); + showToast('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + try { await initializeDashboard(); } catch (error) { diff --git a/web-ui/pages/dashboard/group-leader.html b/web-ui/pages/dashboard/group-leader.html index 2be714c..1dfe655 100644 --- a/web-ui/pages/dashboard/group-leader.html +++ b/web-ui/pages/dashboard/group-leader.html @@ -10,9 +10,10 @@ - + + - +