/** * Dashboard de Progresso * Lê dados do localStorage e mostra estatísticas de estudo */ var PROGRESS_PREFIX = window.PROGRESS_PREFIX || 'quiz_progress_'; function initDashboard() { const dashboard = document.getElementById('dashboard-stats'); if (!dashboard) return; const stats = calculateStats(); renderDashboard(stats); } function calculateStats() { const allKeys = Object.keys(localStorage); const progressKeys = allKeys.filter((k) => k.startsWith(PROGRESS_PREFIX)); const stats = { totalQuizzes: progressKeys.length, totalAcertos: 0, totalErros: 0, disciplinas: {}, }; progressKeys.forEach((key) => { try { const data = JSON.parse(localStorage.getItem(key)); if (!data || !data.questions) return; const disciplina = key.replace(PROGRESS_PREFIX, '').split('_')[0]; if (!stats.disciplinas[disciplina]) { stats.disciplinas[disciplina] = { acertos: 0, erros: 0, total: 0, }; } stats.disciplinas[disciplina].acertos += data.acertos || 0; stats.disciplinas[disciplina].erros += data.erros || 0; stats.disciplinas[disciplina].total += data.questions.length; stats.totalAcertos += data.acertos || 0; stats.totalErros += data.erros || 0; } catch (e) {} }); return stats; } function renderDashboard(stats) { const dashboard = document.getElementById('dashboard-stats'); if (!dashboard) return; const totalQuestoes = stats.totalAcertos + stats.totalErros; const pctGeral = totalQuestoes > 0 ? Math.round((stats.totalAcertos / totalQuestoes) * 100) : 0; let html = `