From 98a65aaff822069934c74049da333fb508e8ada1 Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Sat, 7 Jun 2025 03:18:18 +0700 Subject: [PATCH] feat : update admin form ads & ads on landing --- components/form/setting/form-add-iklan.tsx | 32 ++++++++----------- .../landing-page/advertisement-placements.tsx | 8 ++--- service/settings/settings.ts | 5 ++- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/components/form/setting/form-add-iklan.tsx b/components/form/setting/form-add-iklan.tsx index b8ccdd18..96459682 100644 --- a/components/form/setting/form-add-iklan.tsx +++ b/components/form/setting/form-add-iklan.tsx @@ -185,34 +185,30 @@ export function TambahIklanModal() { .filter((key) => unitSelection[key as keyof typeof unitSelection]) .map((key) => unitMapping[key as keyof typeof unitMapping]) .join(","); - const requestData = { - title: data.title, - placements: selectedPlacement, - description: data.description, - redirectLink: "https://new.netidhub.com", - createdBy: assignmentToString, - assignedToLevel: handlePoldaPolresChange(), - }; - console.log("Form Data Submitted:", requestData); + + const formMedia = new FormData(); + formMedia.append("title", data.title); + formMedia.append("placements", selectedPlacement); + formMedia.append("description", data.description); + formMedia.append("redirectLink", "https://new.netidhub.com"); + formMedia.append("assignedToLevel", handlePoldaPolresChange()); + formMedia.append("file", imageFiles[0]); - const response = await postAdvertisements(requestData); + console.log("Form Data Submitted:", formMedia); + + loading(); + const response = await postAdvertisements(formMedia); if (response?.error) { error(response?.message); return false; } + close(); Cookies.set("scheduleId", response?.data?.data.id, { expires: 1, }); - loading(); - if (imageFiles?.length === 0) { - setIsImageUploadFinish(true); - } - imageFiles?.map(async (item: any, index: number) => { - await uploadResumableFile(index, String(id), item, "1", "0"); - }); }; async function uploadResumableFile( @@ -232,7 +228,7 @@ export function TambahIklanModal() { }; const upload = new Upload(file, { - endpoint: `${process.env.NEXT_PUBLIC_API}/advertisment/file/upload`, + endpoint: `${process.env.NEXT_PUBLIC_API}/advertisements/file/upload`, headers: headers, retryDelays: [0, 3000, 6000, 12_000, 24_000], chunkSize: 20_000, diff --git a/components/landing-page/advertisement-placements.tsx b/components/landing-page/advertisement-placements.tsx index c8b72a35..0435fd82 100644 --- a/components/landing-page/advertisement-placements.tsx +++ b/components/landing-page/advertisement-placements.tsx @@ -40,7 +40,7 @@ const AdvertisementPlacements = (props: { placement?: string }) => { setLoading(true); const res = await listDataAdvertisements( 0, - "3", + "4", "" ); const data = res?.data?.data; @@ -62,10 +62,10 @@ const AdvertisementPlacements = (props: { placement?: string }) => { }, []); return ( -
+
{loading &&

Loading...

} - {ads.map((ad) => ( - {`Banner + {ads?.map((ad) => ( + {`Banner ))}
); diff --git a/service/settings/settings.ts b/service/settings/settings.ts index 1d36d564..adc70c7d 100644 --- a/service/settings/settings.ts +++ b/service/settings/settings.ts @@ -132,5 +132,8 @@ export async function getTagsByParentId(parentId: string | number) { export async function postAdvertisements(data: any) { const url = "advertisements"; - return httpPostInterceptor(url, data); + const headers = { + "Content-Type": "multipart/form-data", + }; + return httpPostInterceptor(url, data, headers); }