feat : update admin form ads & ads on landing

This commit is contained in:
hanif salafi 2025-06-07 03:18:18 +07:00
parent 7fc65833b0
commit 98a65aaff8
3 changed files with 22 additions and 23 deletions

View File

@ -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 response = await postAdvertisements(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]);
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,

View File

@ -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 (
<div className="sticky top-0 space-y-4 ml-14">
<div className={`sticky top-0 space-y-4 ${props.placement == "left" ? "ml-14" : "mr-14"}`}>
{loading && <p className="text-sm text-gray-500">Loading...</p>}
{ads.map((ad) => (
<img key={ad.id} src={ad.contentFileUrl} alt={`Banner ${ad.id}`} width={180} />
{ads?.map((ad) => (
<img key={ad.id} src={ad.contentFileUrl} alt={`Banner ${ad.id}`} className="w-full" />
))}
</div>
);

View File

@ -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);
}