From 0014d0377d4c7fa081d627dbdee0921dcf878527 Mon Sep 17 00:00:00 2001 From: IvoPaunov Date: Mon, 1 Jul 2024 13:47:53 +0300 Subject: [PATCH 1/6] wip: admin review in campaign details --- .../CampaignDetails/AdminActions.tsx | 70 +++++ .../CampaignDetails/CampaignDetails.tsx | 23 +- src/components/Dashboard/Dashboard.tsx | 17 +- .../CampainDetailsRow/CampaignDetailsRow.tsx | 1 + .../common/MediaThumb/MediaThumb.tsx | 5 +- .../AdminCampaignModal/AdminCampaignModal.tsx | 245 ------------------ .../CreativePreviewModal.tsx | 10 +- src/components/common/Modals/index.ts | 2 - 8 files changed, 105 insertions(+), 268 deletions(-) create mode 100644 src/components/CampaignDetails/AdminActions.tsx delete mode 100644 src/components/common/Modals/AdminCampaignModal/AdminCampaignModal.tsx diff --git a/src/components/CampaignDetails/AdminActions.tsx b/src/components/CampaignDetails/AdminActions.tsx new file mode 100644 index 00000000..f824c3db --- /dev/null +++ b/src/components/CampaignDetails/AdminActions.tsx @@ -0,0 +1,70 @@ +import { Button, Flex, Text, Textarea } from '@mantine/core' +import { Campaign } from 'adex-common' + +import { useAdExApi } from 'hooks/useAdexServices' +import { FormEvent, useState } from 'react' + +export const AdminActions = ({ item }: { item: Campaign | null }) => { + const { adexServicesRequest } = useAdExApi() + const [reason, setReason] = useState('') + const [action, setAction] = useState(null) + const [formed, setFormed] = useState(false) + + const handleAction = (status: string) => { + if (!item?.id) return + setAction(status === 'approve' ? 3 : 4) + setFormed(true) + } + + const handleSubmit = (e: FormEvent) => { + e.preventDefault() + if (!item?.id) return + adexServicesRequest('backend', { + route: `/dsp/admin/campaigns/${item.id}`, + method: 'PUT', + body: { + reviewStatus: action, + reviewMessage: reason + }, + headers: { + 'content-type': 'application/json' + } + }).catch(console.log) + setFormed(false) + } + + return ( + + {!formed ? ( + <> +