diff --git a/app/(ui)/artifact/admin/client.tsx b/app/(ui)/artifact/admin/client.tsx index 3a345ef..ccbb919 100755 --- a/app/(ui)/artifact/admin/client.tsx +++ b/app/(ui)/artifact/admin/client.tsx @@ -126,8 +126,8 @@ export function SidebarLink({ { - setChecked((x) => !x); + onCheckedChange={async (checked) => { + setChecked(checked === true); await toggleCheck(submission.id); stop(); }} diff --git a/app/(ui)/donate/admin/client.tsx b/app/(ui)/donate/admin/client.tsx index ab3e975..0b96fb3 100644 --- a/app/(ui)/donate/admin/client.tsx +++ b/app/(ui)/donate/admin/client.tsx @@ -48,6 +48,30 @@ function colorFor(date: Date) { return lePalette[seed % lePalette.length]; } +function ArtifactCheckbox({ + checked, + submissionId, +}: { + checked: boolean; + submissionId: string; +}) { + const [value, setValue] = useState(checked); + + useEffect(() => { + setValue(checked); + }, [checked]); + + return ( + { + setValue(checked === true); + await toggleCheck(submissionId); + }} + /> + ); +} + const columns: ColumnDef< typeof donations.$inferSelect & { checked: boolean | null; @@ -78,9 +102,9 @@ const columns: ColumnDef< const { artifactSubmissionId, checked } = row.row.original; if (checked === null || !artifactSubmissionId) return; return ( - toggleCheck(artifactSubmissionId)} + submissionId={artifactSubmissionId} /> ); },