deskripsi:
- bug donasi cerita penggalangan dana
- bug login
This commit is contained in:
2025-05-21 12:06:14 +08:00
parent 923552681f
commit 4b39ffd54c
7 changed files with 134 additions and 40 deletions

View File

@@ -2,47 +2,71 @@
import { AccentColor } from "@/app_modules/_global/color/color_pallet";
import { ComponentGlobal_LoadImageLandscape } from "@/app_modules/_global/component";
import ComponentGlobal_IsEmptyData from "@/app_modules/_global/component/is_empty_data";
import { Comp_SetInnerHTML } from "@/app_modules/_global/component/new/comp_set_inner_html";
import { Comp_V3_SetInnerHTMLWithStiker } from "@/app_modules/_global/component/new/comp_V3_set_html_with_stiker";
import CustomSkeleton from "@/app_modules/components/CustomSkeleton";
import { apiGetDonasiCeritaPenggalang } from "@/app_modules/donasi/lib/api_donasi";
import { MODEL_CERITA_DONASI } from "@/app_modules/donasi/model/interface";
import { Stack, Text } from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { useParams } from "next/navigation";
import { useState } from "react";
import moment from "moment";
import "moment/locale/id";
import { ComponentGlobal_NotifikasiGagal, ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global";
export default function CeritaPenggalangDonasi() {
const param = useParams<{ id: string }>();
const [data, setData] = useState<MODEL_CERITA_DONASI | null>(null);
useShallowEffect(() => {
const getData = async () => {
try {
const response = await apiGetDonasiCeritaPenggalang({ id: param.id });
if (response.success) {
setData(response.data);
} else {
ComponentGlobal_NotifikasiPeringatan(response.message);
}
} catch (error) {
ComponentGlobal_NotifikasiGagal("Terjadi error saat mengambil data");
}
};
getData();
}, []);
if (!data) return <CustomSkeleton height={"200px"} />;
export default function CeritaPenggalangDonasi({
dataCerita,
}: {
dataCerita: MODEL_CERITA_DONASI;
}) {
const [data, setData] = useState(dataCerita);
return (
<>
{/* <pre>{JSON.stringify(data.imageCeritaDonasi, null, 2)}</pre> */}
<Stack
style={{
padding: "15px",
backgroundColor: AccentColor.darkblue,
borderRadius: "10px",
border: `2px solid ${AccentColor.blue}`,
color: "white",
marginBottom: "15px",
}}
>
<Text>
{new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
data.createdAt
)}
</Text>
<Text fw={"bold"}> #HaloOrangBaik</Text>
{/* <Text>{data.pembukaan}</Text> */}
{data === null ? (
<ComponentGlobal_IsEmptyData />
) : (
<Stack
style={{
padding: "15px",
backgroundColor: AccentColor.darkblue,
borderRadius: "10px",
border: `2px solid ${AccentColor.blue}`,
color: "white",
marginBottom: "15px",
}}
>
<Text>
{moment(data?.createdAt).format("DD MMMM YYYY")}
</Text>
<Text fw={"bold"}> #HaloOrangBaik</Text>
<Comp_SetInnerHTML props={data?.pembukaan} />
<Comp_SetInnerHTML props={data?.pembukaan || ""} />
<ComponentGlobal_LoadImageLandscape fileId={data.imageId} />
<ComponentGlobal_LoadImageLandscape fileId={data?.imageId || ""} />
<Comp_SetInnerHTML props={data?.cerita} />
{/* <Text>{data.cerita}</Text> */}
</Stack>
<Comp_SetInnerHTML props={data?.cerita || ""} />
</Stack>
)}
</>
);
}

View File

@@ -57,3 +57,39 @@ export const apiGetOneDonasiById = async (path: string, kategori: string) => {
});
return await response.json().catch(() => null);
};
export const apiGetDonasiCeritaPenggalang = async ({ id }: { id: string }) => {
try {
console.log("id in Fetch>>", id);
// Fetch token from cookie
const { token } = await fetch("/api/get-cookie").then((res) => res.json());
if (!token) {
console.error("No token found");
return null;
}
const response = await fetch(`/api/donasi/${id}/cerita-penggalang`, {
method: "GET",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: `Bearer ${token}`,
},
});
if (!response.ok) {
const errorData = await response.json().catch(() => null);
console.error("Failed to get donasi cerita penggalang", response.statusText, errorData);
throw new Error(errorData?.message || "Failed to get donasi cerita penggalang");
}
// Return the JSON response
const data = await response.json();
console.log("data fetch>>", data);
return data;
} catch (error) {
console.error("Error get donasi cerita penggalang", error);
throw error; // Re-throw the error to handle it in the calling function
}
};