- Adiciona editor WYSIWYG com formatação básica
- Implementa contagem de palavras em tempo real
- Adiciona barra de ferramentas de formatação
- Suporte a alinhamento de texto e destaque
- Alinha estilo com StoryPage e CreateStoryPage
- Adiciona suporte a texto adaptativo
- Melhora feedback visual e estados interativos
- Implementa loading states animados
- Adiciona verificação de segurança para requirements
- Implementa valores padrão para min/max words
- Adiciona renderização condicional para elementos necessários
- Alinha estilo dos cards com CreateStoryPage
- Adiciona suporte a texto adaptativo
- Melhora feedback visual e estados interativos
- Implementa loading states animados
- Permite que alunos deletem apenas suas próprias redações
- Mantém consistência com outras políticas RLS existentes
- Adiciona rollback apropriado para a nova política
- Substitui Dialog básico pelo AlertDialog especializado
- Melhora feedback visual na confirmação de deleção
- Mantém consistência com o design system
- Implementa padrões de acessibilidade do Radix UI
Modulariza os cards de métricas em componentes reutilizáveis:
- Cria componente MetricCard para cards individuais
- Cria componente DashboardMetrics para agrupamento
- Move configurações de métricas para constantes
- Adiciona suporte a tooltips e ícones personalizados
- Mantém responsividade e acessibilidade
- Simplifica o StudentDashboardPage
Mudanças técnicas:
- Extrai lógica de renderização para componentes dedicados
- Centraliza configuração de métricas em constantes
- Melhora tipagem com interfaces dedicadas
- Adiciona suporte a tooltips informativos
- Mantém consistência visual com o design system
- Reduz duplicação de código
Modulariza o gráfico de métricas em um componente reutilizável:
- Cria novo componente @/components/dashboard/MetricsChart
- Move toda a lógica de filtragem e visualização para o componente
- Define interfaces e tipos apropriados
- Encapsula estados e lógica de filtragem
- Simplifica a interface do componente (props)
- Mantém toda funcionalidade existente
Mudanças técnicas:
- Extrai interfaces e tipos relacionados
- Move constantes de configuração para o componente
- Encapsula lógica de filtragem temporal
- Simplifica o StudentDashboardPage
- Melhora a manutenibilidade e reusabilidade
Implementa um sistema de filtragem temporal no gráfico de evolução das métricas,
permitindo visualizar diferentes períodos de tempo:
- Opções de 3, 6, 12 meses e todo período
- Visualização padrão dos últimos 12 meses
- Interface intuitiva com botões de período
- Filtragem automática dos dados
- Design consistente com o resto da aplicação
Mudanças técnicas:
- Adiciona sistema de filtragem temporal
- Implementa conversão de datas semana/ano
- Otimiza renderização do gráfico
Implementa um novo gráfico combinado (linha + barras) para visualização da
evolução das métricas do aluno ao longo do tempo. O gráfico inclui:
- Visualização das métricas principais (fluência, pronúncia, etc.)
- Gráfico de barras com minutos lidos por semana
- Botões interativos para filtrar métricas
- Design moderno com gradientes e animações
- Agrupamento automático por semana
- Layout responsivo
Principais mudanças técnicas:
- Adiciona Recharts para visualização de dados
- Implementa processamento de métricas semanais
- Otimiza carregamento e agrupamento de dados
- Integra completamente com a tabela languages
- Adiciona suporte para ícones de bandeira e instruções
- Remove LANGUAGE_OPTIONS hard coded
- Usa DEFAULT_LANGUAGE do type
- Melhora validações e UX do seletor de idiomas
- Atualiza CHANGELOG.md para versão 1.4.0
- Adiciona suporte para Português (Brasil), Inglês (EUA) e Espanhol (Espanha)
- Implementa nova etapa de seleção de idioma no fluxo de criação
- Adiciona instruções específicas por idioma no prompt da IA
- Atualiza CHANGELOG.md para versão 1.3.0
- Atualiza AudioRecorder com tipagem correta
- Corrige gerenciamento de gravações no StoryPage
- Adiciona suporte para conversão WebM para MP3
- Melhora feedback visual e tratamento de erros
- Implementa inicialização adequada de métricas
- Implementa componente TextCaseToggle para alternância de caixa
- Cria sistema de texto adaptativo com componentes AdaptiveText
- Adiciona hook useUppercasePreference para gerenciar estado
- Integra funcionalidade em todas as páginas principais
- Persiste preferência do usuário no banco de dados
- Implementa componente TextCaseToggle para alternância de caixa
- Cria sistema de texto adaptativo com componentes AdaptiveText
- Adiciona hook useUppercasePreference para gerenciar estado
- Integra funcionalidade em todas as páginas principais
- Persiste preferência do usuário no banco de dados