fix: Corrigindo visualização do dashboard do estudante

This commit is contained in:
Lucas Santana 2025-02-04 17:14:09 -03:00
parent 7e93a59609
commit f3fbdb8228
2 changed files with 35 additions and 10 deletions

View File

@ -234,8 +234,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
{/* Métricas */} {/* Métricas Principais */}
<div className="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8"> <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6"> <div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-purple-100 rounded-lg"> <div className="p-3 bg-purple-100 rounded-lg">
@ -285,7 +285,7 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
{/* Métricas de Leitura */} {/* Métricas Detalhadas */}
<div className="mb-8"> <div className="mb-8">
<div className="flex items-center gap-2 mb-4"> <div className="flex items-center gap-2 mb-4">
<h2 className="text-lg font-semibold text-gray-900">Métricas Detalhadas de Leitura</h2> <h2 className="text-lg font-semibold text-gray-900">Métricas Detalhadas de Leitura</h2>
@ -293,10 +293,13 @@ export function StudentDashboardPage() {
className="text-gray-400 hover:text-gray-600 cursor-help transition-colors" className="text-gray-400 hover:text-gray-600 cursor-help transition-colors"
title="Estas métricas são calculadas com base em todas as suas gravações de leitura, fornecendo uma visão detalhada do seu progresso" title="Estas métricas são calculadas com base em todas as suas gravações de leitura, fornecendo uma visão detalhada do seu progresso"
> >
<HelpCircle className="h-4 w-4" />
</div> </div>
</div> </div>
<div className="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-6">
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Avalia a qualidade da sua pronúncia durante a leitura, considerando a clareza e correção dos sons das palavras"> <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
{/* Pronúncia */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-indigo-100 rounded-lg"> <div className="p-3 bg-indigo-100 rounded-lg">
<Mic className="h-6 w-6 text-indigo-600" /> <Mic className="h-6 w-6 text-indigo-600" />
@ -316,7 +319,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Indica o quão preciso você é ao ler as palavras, sem trocas ou omissões de letras e sílabas"> {/* Precisão */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-pink-100 rounded-lg"> <div className="p-3 bg-pink-100 rounded-lg">
<Target className="h-6 w-6 text-pink-600" /> <Target className="h-6 w-6 text-pink-600" />
@ -336,7 +340,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Avalia seu nível de entendimento do texto durante a leitura, baseado no ritmo e entonação adequados"> {/* Compreensão */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-orange-100 rounded-lg"> <div className="p-3 bg-orange-100 rounded-lg">
<Brain className="h-6 w-6 text-orange-600" /> <Brain className="h-6 w-6 text-orange-600" />
@ -356,7 +361,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Média de palavras lidas por minuto (WPM), indicando a velocidade e fluidez da sua leitura"> {/* Velocidade */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-cyan-100 rounded-lg"> <div className="p-3 bg-cyan-100 rounded-lg">
<Gauge className="h-6 w-6 text-cyan-600" /> <Gauge className="h-6 w-6 text-cyan-600" />
@ -376,7 +382,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Média de pausas não planejadas durante a leitura, indicando momentos de hesitação"> {/* Pausas */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-amber-100 rounded-lg"> <div className="p-3 bg-amber-100 rounded-lg">
<Pause className="h-6 w-6 text-amber-600" /> <Pause className="h-6 w-6 text-amber-600" />
@ -396,7 +403,8 @@ export function StudentDashboardPage() {
</div> </div>
</div> </div>
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6" title="Média de erros cometidos durante a leitura, como trocas, omissões ou adições de palavras"> {/* Erros */}
<div className="bg-white rounded-xl shadow-sm border border-gray-200 p-6">
<div className="flex items-center gap-4"> <div className="flex items-center gap-4">
<div className="p-3 bg-red-100 rounded-lg"> <div className="p-3 bg-red-100 rounded-lg">
<XCircle className="h-6 w-6 text-red-600" /> <XCircle className="h-6 w-6 text-red-600" />

17
src/utils/cache.ts Normal file
View File

@ -0,0 +1,17 @@
import { getFromCache, setInCache, invalidateCache } from '../lib/redis';
const CACHE_TTL = 300; // 5 minutos em segundos
export const cacheUtils = {
async get<T>(key: string): Promise<T | null> {
return getFromCache<T>(key);
},
async set<T>(key: string, value: T): Promise<void> {
return setInCache(key, value, CACHE_TTL);
},
async del(key: string): Promise<void> {
return invalidateCache(key);
}
};