import { format } from 'date-fns'; import { BookOpen, CalendarDays, FileIcon, FileX, Pencil, Trash2, User, } from 'lucide-react'; import { AttachmentPreviewDialog } from '@/components/attachment-preview-dialog'; import { RowActions } from '@/components/row-actions'; import { Attachment, AttachmentActions, AttachmentContent, AttachmentDescription, AttachmentMedia, AttachmentTitle, } from '@/components/ui/attachment'; import { Badge } from '@/components/ui/badge'; import type { Material } from '@/types/material'; type CreateCardParams = { handleEdit: (material: Material) => void; handleDeleteClick: (material: Material) => void; canUpdate: boolean; canDelete: boolean; }; export function createMaterialCard(params: CreateCardParams) { const { handleEdit, handleDeleteClick, canUpdate, canDelete } = params; return function MaterialCard(material: Material) { const courseClass = material.course_class; const lecturerName = courseClass?.lecturer?.user?.profile?.full_name ?? null; return (
{material.title}
{courseClass ? `${courseClass.course?.code ?? ''} ยท ${courseClass.course?.name ?? ''}` : '-'}
{lecturerName && (
{material.description}
)} {material.file_url && material.file_name ? (