class HeaderComponent { static render() { const header = document.getElementById('mainHeader'); if (!header) return; header.innerHTML = `

🎓 RewardApp

پلتفرم آموزش توسعه وب
`; this.updateStats(); this.setupEventListeners(); } static updateStats() { const headerStats = document.getElementById('headerStats'); if (!headerStats) return; const user = authManager.getCurrentUser(); if (user) { const stats = learningLogic.getUserStats(); headerStats.innerHTML = `
سطح ${stats.level}
امتیاز ${Utils.formatNumber(stats.totalScore)}
استریک ${stats.streak}
`; } else { headerStats.innerHTML = `
وضعیت ورود نکرده
`; } } static setupEventListeners() { // بستن منو با کلیک خارج از آن document.addEventListener('click', (e) => { const userMenu = document.getElementById('userMenu'); const headerBtn = e.target.closest('.header-btn'); if (userMenu && !userMenu.contains(e.target) && !headerBtn) { userMenu.style.display = 'none'; } }); // به‌روزرسانی آمار هنگام تغییر وضعیت document.addEventListener('authStateChanged', () => { this.updateStats(); this.updateUserMenu(); }); document.addEventListener('progressUpdated', () => { this.updateStats(); }); } static showUserMenu() { const userMenu = document.getElementById('userMenu'); if (!userMenu) return; this.updateUserMenu(); userMenu.style.display = userMenu.style.display === 'none' ? 'block' : 'none'; } static updateUserMenu() { const menuUserName = document.getElementById('menuUserName'); const menuUserRole = document.getElementById('menuUserRole'); if (!menuUserName || !menuUserRole) return; const user = authManager.getCurrentUser(); if (user) { menuUserName.textContent = user.profile.fullName || user.username; menuUserRole.textContent = this.getRoleText(user.role); } else { menuUserName.textContent = 'کاربر مهمان'; menuUserRole.textContent = 'ورود نکرده'; } } static getRoleText(role) { const roles = { 'student': 'دانشجو', 'instructor': 'مربی', 'admin': 'مدیر' }; return roles[role] || role; } static toggleTheme() { const currentTheme = localStorage.getItem('theme') || 'light'; const newTheme = currentTheme === 'light' ? 'dark' : 'light'; localStorage.setItem('theme', newTheme); document.body.setAttribute('data-theme', newTheme); Utils.showNotification( `تم ${newTheme === 'dark' ? 'تاریک' : 'روشن'} فعال شد`, 'success' ); } static resetProgress() { if (confirm('آیا از بازنشانی تمام پیشرفت خود مطمئن هستید؟ این عمل غیرقابل برگشت است.')) { learningLogic.resetProgress(); Utils.showNotification('پیشرفت با موفقیت بازنشانی شد', 'success'); document.dispatchEvent(new CustomEvent('progressUpdated')); this.showUserMenu(); // بستن منو } } static exportData() { const userProgress = learningLogic.userProgress; const dataStr = JSON.stringify(userProgress, null, 2); const dataBlob = new Blob([dataStr], { type: 'application/json' }); const url = URL.createObjectURL(dataBlob); const link = document.createElement('a'); link.href = url; link.download = `rewardapp-backup-${Utils.getCurrentDate()}.json`; document.body.appendChild(link); link.click(); document.body.removeChild(link); URL.revokeObjectURL(url); Utils.showNotification('اطلاعات با موفقیت ذخیره شد', 'success'); this.showUserMenu(); // بستن منو } static showAbout() { const aboutHTML = `

🎓 درباره RewardApp

نسخه: ۱.۰.۰

توضیحات: پلتفرم آموزشی تعاملی برای یادگیری توسعه وب

امکانات:


ساخته شده با ❤️ برای جامعه توسعه‌دهندگان وب

`; ModalComponent.showCustomModal('about-modal', aboutHTML); this.showUserMenu(); // بستن منو } } // اعمال تم ذخیره شده document.addEventListener('DOMContentLoaded', () => { const savedTheme = localStorage.getItem('theme'); if (savedTheme) { document.body.setAttribute('data-theme', savedTheme); } });