import DynamicCertificate from '@/components/dynamic-certificate'; import DynamicMarksheet from '@/components/dynamic-marksheet'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; import { Card, CardContent } from '@/components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { StudentCourseProps } from '@/types/page'; import { usePage } from '@inertiajs/react'; import { format, parseISO } from 'date-fns'; import { Award, ClipboardList, Lock } from 'lucide-react'; const CourseCertificate = () => { const { props } = usePage(); const { course, watchHistory, completion, certificateTemplate, marksheetTemplate, studentMarks, auth, system } = props; const showCourseCertificate = system?.fields?.show_course_certificate ?? true; const showCourseMarksheet = system?.fields?.show_course_marksheet ?? true; if (!showCourseCertificate && !showCourseMarksheet) { return ( Zertifikatbereich deaktiviert Für diesen Kurs sind Zertifikat und Notenblatt aktuell deaktiviert. ); } // Check if course is completed const isCompleted = watchHistory?.completion_date || completion?.completion === 100; if (!isCompleted) { const title = showCourseCertificate && showCourseMarksheet ? 'Zertifikat & Notenblatt gesperrt' : showCourseCertificate ? 'Zertifikat gesperrt' : 'Notenblatt gesperrt'; const unlockText = showCourseCertificate && showCourseMarksheet ? 'Schließe alle Kursmodule ab, um dein Zertifikat und Notenblatt freizuschalten.' : showCourseCertificate ? 'Schließe alle Kursmodule ab, um dein Zertifikat freizuschalten.' : 'Schließe alle Kursmodule ab, um dein Notenblatt freizuschalten.'; return ( {title} {unlockText} Dein aktueller Fortschritt: {completion?.completion || 0}% ); } const completionDate = watchHistory?.completion_date ? format(parseISO(watchHistory.completion_date), 'MMMM d, yyyy') : format(new Date(), 'MMMM d, yyyy'); // Check if both are unavailable const certificateAvailable = showCourseCertificate && !!certificateTemplate; const marksheetAvailable = showCourseMarksheet && !!marksheetTemplate; if (!certificateAvailable && !marksheetAvailable) { const title = showCourseCertificate && showCourseMarksheet ? 'Kein Zertifikat oder Notenblatt verfügbar' : showCourseCertificate ? 'Kein Zertifikat verfügbar' : 'Kein Notenblatt verfügbar'; const description = showCourseCertificate && showCourseMarksheet ? 'Der Dozent hat für diesen Kurs noch keine Zertifikate oder Notenblätter eingerichtet.' : showCourseCertificate ? 'Der Dozent hat für diesen Kurs noch keine Zertifikate eingerichtet.' : 'Der Dozent hat für diesen Kurs noch keine Notenblätter eingerichtet.'; return (

{title}

{description}

); } return (
{showCourseCertificate && ( Zertifikat )} {showCourseMarksheet && ( Notenblatt )} {showCourseCertificate && ( {!certificateTemplate ? (

Kein Zertifikat verfügbar

Der Dozent hat für diesen Kurs noch keine Zertifikate eingerichtet.

) : ( )}
)} {showCourseMarksheet && ( {!marksheetTemplate || !studentMarks ? (

Kein Notenblatt verfügbar

{!marksheetTemplate ? 'Der Dozent hat für diesen Kurs noch keine Notenblätter eingerichtet.' : 'Keine Notendaten verfügbar. Schließe Aufgaben und Tests ab, um dein Notenblatt zu sehen.'}

) : ( )}
)}
); }; export default CourseCertificate;