implemented task more

This commit is contained in:
rgrgogu
2026-07-17 17:27:59 +08:00
parent 2e9ab5786c
commit 5eefbe0dc9
10 changed files with 120 additions and 31 deletions
+14 -6
View File
@@ -35,7 +35,7 @@ import { useTask } from '@/contexts/ClientTaskContext';
import { PageMeta } from '@/contexts/MetadataContext';
import { useTaskProgress } from '@/contexts/ClientTaskProgressContext';
import { useGroup } from '@/contexts/ClientGroupContext';
import { formatDate } from '@/utils/table.util';
import { formatDate, formatDateTime } from '@/utils/table.util';
import api from '@/utils/api.util';
// ─── Status badge ─────────────────────────────────────────────────────────────
@@ -215,7 +215,7 @@ const FileRow = ({ file, onClick }) => {
};
// ─── Submission panel (Your Work) — upload_file and/or submit_text ────────────
const SubmissionPanel = ({ latestCompletion, onAddAttachment, submitting, onFileClick, requiresReview, hasTextRequirement }) => {
const SubmissionPanel = ({ latestCompletion, onAddAttachment, submitting, onFileClick, requiresReview, hasTextRequirement, acceptsSubmissions }) => {
const files = latestCompletion?.files ?? [];
return (
@@ -264,9 +264,15 @@ const SubmissionPanel = ({ latestCompletion, onAddAttachment, submitting, onFile
) : null}
<div className="flex flex-col gap-3">
<Button className="w-full" onClick={onAddAttachment} disabled={submitting}>
<Plus /> {latestCompletion ? 'Resubmit' : 'Turn In'}
</Button>
{acceptsSubmissions ? (
<Button className="w-full" onClick={onAddAttachment} disabled={submitting}>
<Plus /> {latestCompletion ? 'Resubmit' : 'Turn In'}
</Button>
) : (
<p className="text-sm text-center text-muted-foreground py-2">
This task no longer accepts submissions
</p>
)}
</div>
</div>
);
@@ -498,7 +504,7 @@ const ViewTask = () => {
<div className="flex items-center gap-4 text-sm [&_svg]:size-4">
{task?.deadline && (
<span className="flex items-center gap-1.5">
<Clock /> Due {formatDate(task.deadline)}
<Clock /> Due {formatDateTime(task.deadline)}
</span>
)}
</div>
@@ -623,6 +629,7 @@ const ViewTask = () => {
onFileClick={(file) => setPreviewFile(file)}
requiresReview={requiresReview}
hasTextRequirement={hasTextReq}
acceptsSubmissions={task?.accepts_submissions !== false}
/>
</div>
)}
@@ -638,6 +645,7 @@ const ViewTask = () => {
onFileClick={(file) => setPreviewFile(file)}
requiresReview={requiresReview}
hasTextRequirement={hasTextReq}
acceptsSubmissions={task?.accepts_submissions !== false}
/>
)}
<RequirementsStatusPanel