import type React from "react"; import type { Colle } from "~/lib/api"; import { Link } from "react-router"; import { Card, CardContent, CardHeader, CardFooter, } from "~/components/ui/card"; import { User, UserCheck, Paperclip, Star, MapPinHouse } from "lucide-react"; import { Badge } from "~/components/ui/badge"; import { Button } from "~/components/ui/button"; import { formatDate, formatGrade, formatTime } from "~/lib/utils"; // TODO: Preferences for subject colors const getSubjectColor = (_: string) => { // Mock placeholder function return "bg-blue-100 text-blue-800"; // Default color }; const getSubjectEmoji = (_: string) => { // Mock placeholder function return "📚"; // Default emoji }; type ColleCardProps = { colle: Colle; onToggleFavorite: (id: number, favorite: boolean) => void; isFavorite: boolean; }; export default function ColleCard({ colle, onToggleFavorite, isFavorite, }: ColleCardProps) { // TODO: Favorites const handleToggleFavorite = (e: React.MouseEvent) => { e.stopPropagation(); // Prevent card click e.preventDefault(); const newValue = !isFavorite; onToggleFavorite(colle.id, newValue); }; const subjectColor = getSubjectColor(colle.subject.name); const subjectEmoji = getSubjectEmoji(colle.subject.name); return (
{formatDate(colle.date)}
{formatTime(colle.date)}
{colle.grade && (
{formatGrade(colle.grade)}/20
)}
{colle.student.fullName}
{colle.examiner.name}
{colle.room && (
{colle.room.name}
)}
{colle.subject.name + " " + subjectEmoji} {isFavorite && ( Favori )}
{/* TODO: Attachments */} {/* {colle.attachmentsCount > 0 && (
{colle.attachmentsCount}
)} */}
); }