Add Clases Grabadas section with audio player and announcement system

- Copy and merge audio files from Nextcloud (joined clase 1 and 2)
- Create ClasesGrabadas page with audio player and download option
- Add SistemaAnuncios component for user notifications
- Add announcement about new audio classes feature
- Add link to Clases Grabadas in Dashboard
- Audio files: 4 classes (clase1-4_completa.m4a) ~890MB total
This commit is contained in:
Renato
2026-02-12 04:59:47 +01:00
parent a0a1baa0d3
commit 0698eedcf4
8 changed files with 386 additions and 1 deletions

View File

@@ -8,7 +8,8 @@ import { ProgressBar } from '../components/progress/ProgressBar';
import { ScoreDisplay } from '../components/progress/ScoreDisplay';
import { BadgesSection } from '../components/progress/Badges';
import { Loader } from '../components/ui/Loader';
import { BookOpen, User, LogOut, LayoutGrid, Award, Star, Target, CheckCircle, FileText } from 'lucide-react';
import { BookOpen, User, LogOut, LayoutGrid, Award, Star, Target, CheckCircle, FileText, Headphones } from 'lucide-react';
import { SistemaAnuncios } from '../components/announcements/SistemaAnuncios';
const MODULOS_CONFIG = [
{ id: 'modulo1', numero: 1, titulo: 'Fundamentos de Economía', descripcion: 'Introducción a los conceptos básicos', totalEjercicios: 3 },
@@ -121,6 +122,9 @@ export function Dashboard() {
<p className="text-gray-600">Continúa donde lo dejaste y desbloquea nuevos logros</p>
</div>
{/* Sistema de Anuncios */}
<SistemaAnuncios />
{/* Stats Cards */}
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
<Card className="bg-gradient-to-br from-blue-500 to-blue-600 text-white border-none">
@@ -252,6 +256,12 @@ export function Dashboard() {
Material PDF
</Button>
</Link>
<Link to="/clases">
<Button variant="outline" size="lg" className="bg-gradient-to-r from-purple-50 to-pink-50 border-purple-200 hover:border-purple-300">
<Headphones className="w-5 h-5 mr-2 text-purple-600" />
<span className="text-purple-700">Clases Grabadas</span>
</Button>
</Link>
</div>
</div>