import { Head, Link, router } from '@inertiajs/react'; import type { ColumnDef } from '@tanstack/react-table'; import { format } from 'date-fns'; import { ArrowLeft, Save } from 'lucide-react'; import { useState } from 'react'; import { DataTable } from '@/components/data-table'; import { PageHeader } from '@/components/page-header'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { usePermissions } from '@/hooks/use-permissions'; import { index as assignmentIndex } from '@/routes/admin/academic-classes/assignments'; import { grade } from '@/routes/admin/academic-classes/assignments/submissions'; import { AssignmentStatusLabels } from '@/types/assignment'; import type { Assignment } from '@/types/assignment'; import type { Submission } from '@/types/submission'; import { SubmissionStatusLabels } from '@/types/submission'; type Props = { assignment: Assignment; submissions: Submission[]; }; function ScoreCell({ assignmentId, submission, canUpdate, }: { assignmentId: number; submission: Submission; canUpdate: boolean; }) { const normalizedScore = submission.score ?? ''; const [value, setValue] = useState(normalizedScore); const [savedScore, setSavedScore] = useState(normalizedScore); const [saving, setSaving] = useState(false); // Sync local state when the score changes externally (e.g. after save). if (normalizedScore !== savedScore) { setSavedScore(normalizedScore); setValue(normalizedScore); } if (!canUpdate) { return
Kelas: {assignment.course_class?.course?.code}{' '} {assignment.course_class?.course?.name}
Batas Waktu:{' '} {format( new Date(assignment.deadline), 'd MMM yyyy, HH:mm', )}
Jumlah Pengumpulan: {submissions.length}