Spaces:
Sleeping
Sleeping
File size: 1,744 Bytes
e50b7ef |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import type { SyllabusPractical } from '@/types/syllabus';
import { ClipboardList, TerminalSquare, Code2 } from 'lucide-react'; // Terminal for Linux, Code2 for Java
interface PracticalDetailsProps {
practical: SyllabusPractical;
}
export function PracticalDetails({ practical }: PracticalDetailsProps) {
const ProgramIcon = practical.title.toLowerCase().includes('linux') ? TerminalSquare : Code2;
return (
<div className="mt-6">
<h3 className="text-xl font-semibold mb-3 flex items-center font-headline text-primary">
<ClipboardList className="mr-2 h-5 w-5" />
Scheme of Examination
</h3>
<p className="text-sm text-foreground/80 mb-2">{practical.examinationSchemeIntro}</p>
<ul className="list-disc list-inside space-y-1 text-sm text-foreground/80 mb-6">
{practical.examinationSchemeMarks.map((item, index) => (
<li key={index} className="ml-2">{item}</li>
))}
</ul>
{practical.note && (
<p className="text-sm italic text-muted-foreground mb-4">Note: {practical.note}</p>
)}
<h3 className="text-xl font-semibold mb-4 flex items-center font-headline text-primary">
<ProgramIcon className="mr-2 h-5 w-5" />
List of Practicals
</h3>
<div className="space-y-3">
{practical.programs.map((program, index) => (
<div key={program.id} className="p-3 border border-dashed border-accent/30 rounded-md bg-background hover:shadow-sm transition-shadow">
<p className="text-sm font-medium text-foreground">
<span className="text-accent">{index + 1}. </span>
{program.description}
</p>
</div>
))}
</div>
</div>
);
}
|