From 3718613e2623de4ebc7e89b70fc787e133c6be53 Mon Sep 17 00:00:00 2001 From: Aaron Delasy Date: Tue, 22 Oct 2024 00:59:34 +0300 Subject: [PATCH] A way for admin to delete map during review --- app/admin/review/page.tsx | 19 +++++++++++++------ app/prompts/page.tsx | 6 ++---- convex/maps.ts | 9 +++++++++ 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/admin/review/page.tsx b/app/admin/review/page.tsx index 2071686..b73e24a 100644 --- a/app/admin/review/page.tsx +++ b/app/admin/review/page.tsx @@ -12,16 +12,17 @@ import { } from "@/components/ui/card"; import { api } from "@/convex/_generated/api"; -const Page = () => { +export default function AdminReviewPage() { const isAdmin = useQuery(api.users.isAdmin); const maps = useQuery(api.maps.getMaps, { isReviewed: false }); const adminApprovalMutation = useMutation(api.maps.approveMap); + const adminRejectMapMutation = useMutation(api.maps.rejectMap); if (isAdmin == true) { return (

Review Maps

-
+
{maps?.map((map) => ( @@ -32,7 +33,7 @@ const Page = () => { - + + ))} @@ -50,6 +59,4 @@ const Page = () => { } return
Not an admin
; -}; - -export default Page; +} diff --git a/app/prompts/page.tsx b/app/prompts/page.tsx index 91b4dc3..466feeb 100644 --- a/app/prompts/page.tsx +++ b/app/prompts/page.tsx @@ -14,7 +14,7 @@ import { } from "@/components/ui/table"; import { api } from "@/convex/_generated/api"; -const Page = () => { +export default function PromptsPage() { const prompts = useQuery(api.prompts.getAllPrompts); const enablePrompt = useMutation(api.prompts.enablePrompt); const deletePrompt = useMutation(api.prompts.deletePrompt); @@ -91,6 +91,4 @@ const Page = () => {
); -}; - -export default Page; +} diff --git a/convex/maps.ts b/convex/maps.ts index 003dc04..f824bf4 100644 --- a/convex/maps.ts +++ b/convex/maps.ts @@ -244,6 +244,15 @@ export const approveMap = adminMutationBuilder({ }, }); +export const rejectMap = adminMutationBuilder({ + args: { + mapId: v.id("maps"), + }, + handler: async (ctx, args) => { + await ctx.db.delete(args.mapId); + }, +}); + export const getMapByLevel = query({ args: { level: v.number() }, handler: async (ctx, args) => {