diff --git a/index.html b/index.html index c54f102..ea5a338 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,14 @@ EnCoach — IELTS & English Learning Platform + + + + + + diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..398952a Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..9943934 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..0c7598e Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico index 3c01d69..2694fe4 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/logo-icon.png b/public/logo-icon.png new file mode 100644 index 0000000..05c1870 Binary files /dev/null and b/public/logo-icon.png differ diff --git a/src/App.tsx b/src/App.tsx index 6d4adc8..70e3c3d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -61,6 +61,7 @@ import TeacherAttendance from "@/pages/teacher/TeacherAttendance"; import TeacherStudents from "@/pages/teacher/TeacherStudents"; import TeacherTimetable from "@/pages/teacher/TeacherTimetable"; import TeacherProfile from "@/pages/teacher/TeacherProfile"; +import TeacherLibrary from "@/pages/teacher/TeacherLibrary"; import AdaptiveSettings from "@/pages/teacher/AdaptiveSettings"; // Admin LMS pages import AdminLmsDashboard from "@/pages/admin/AdminLmsDashboard"; @@ -222,10 +223,11 @@ const App = () => ( {/* Teacher routes */} - }> + }> }> } /> } /> + } /> } /> } /> } /> @@ -233,9 +235,9 @@ const App = () => ( } /> } /> } /> - } /> - } /> - } /> + } /> + } /> + } /> } /> } /> } /> diff --git a/src/components/MaterialViewer.tsx b/src/components/MaterialViewer.tsx new file mode 100644 index 0000000..b8b7ee6 --- /dev/null +++ b/src/components/MaterialViewer.tsx @@ -0,0 +1,235 @@ +import { Sheet, SheetContent, SheetHeader, SheetTitle } from "@/components/ui/sheet"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { ExternalLink, Download, FileText, Video, Music, Image, Link2 } from "lucide-react"; +import { API_BASE_URL } from "@/lib/api-client"; +import type { ChapterMaterial, MaterialType } from "@/types/courseware"; + +interface MaterialViewerProps { + material: ChapterMaterial | null; + open: boolean; + onOpenChange: (open: boolean) => void; + onDownload?: (materialId: number, name: string) => void; +} + +const typeLabels: Record = { + pdf: "PDF Document", + document: "Document", + video: "Video", + audio: "Audio", + image: "Image", + link: "External Link", + article: "Article", +}; + +const typeIcons: Record = { + pdf: , + document: , + video: