From c5564a989f9a77c125749d609ede7afb28282157 Mon Sep 17 00:00:00 2001 From: victorSauceda Date: Fri, 12 Dec 2025 21:28:30 -0600 Subject: [PATCH] rejection reason and removing console logs --- src/app/admin/AdminPanel.tsx | 89 +++++++++++++++++++++++-- src/app/admin/actions.ts | 34 ++++++---- src/app/api/test-db-connection/route.ts | 1 - src/app/callback/page.tsx | 12 +--- src/app/submit/actions.ts | 23 +------ src/components/admin/EntryForm.tsx | 8 --- src/lib/api.ts | 31 +++++---- src/lib/types.ts | 2 + 8 files changed, 129 insertions(+), 71 deletions(-) diff --git a/src/app/admin/AdminPanel.tsx b/src/app/admin/AdminPanel.tsx index 9d41955..7c3ab7e 100644 --- a/src/app/admin/AdminPanel.tsx +++ b/src/app/admin/AdminPanel.tsx @@ -134,6 +134,10 @@ export default function AdminPanel() { const [isLoadingOriginalEntry, setIsLoadingOriginalEntry] = useState(false); const [isSubmissionDetailOpen, setIsSubmissionDetailOpen] = useState(false); + const [isRejectDialogOpen, setIsRejectDialogOpen] = useState(false); + const [rejectionReason, setRejectionReason] = useState(""); + const [submissionToReject, setSubmissionToReject] = useState(null); + const [lexiconEntriesForDisplay, setLexiconEntriesForDisplay] = useState< AnyEntry[] >([]); @@ -540,26 +544,48 @@ export default function AdminPanel() { } }; - const handleRejectSubmission = async (submissionId: number) => { - const submission = userSubmissions.find((s) => s.id === submissionId); + const handleRejectSubmission = (submissionId: number) => { + setSubmissionToReject(submissionId); + setRejectionReason(""); + setIsRejectDialogOpen(true); + }; + + const handleConfirmReject = async () => { + if (!submissionToReject) return; + + if (!rejectionReason.trim()) { + toast({ + title: "Rejection Reason Required", + description: "Please provide a reason for rejecting this submission.", + variant: "destructive", + }); + return; + } + + const submission = userSubmissions.find((s) => s.id === submissionToReject); if (submission) { try { await updateSubmissionStatusInDatabase( - submissionId, + submissionToReject, "rejected", submission, + rejectionReason.trim(), ); toast({ title: "Submission Rejected", - description: `Submission ID "${submissionId}" has been rejected.`, + description: `Submission ID "${submissionToReject}" has been rejected.`, }); await refetchAllData(); - if (viewingSubmission?.id === submissionId) + if (viewingSubmission?.id === submissionToReject) { setIsSubmissionDetailOpen(false); + } + setIsRejectDialogOpen(false); + setSubmissionToReject(null); + setRejectionReason(""); } catch (error) { toast({ title: "Reject Failed", - description: `Could not reject submission ID "${submissionId}".`, + description: `Could not reject submission ID "${submissionToReject}".`, variant: "destructive", }); } @@ -1736,6 +1762,57 @@ export default function AdminPanel() { + + + + + Reject Submission + + Please provide a reason for rejecting this submission. This will be + sent to the submitter via email. + + +
+
+ +