Integrasi API: Donation Admin

Add:
-  screens/Admin/Donation/funDonationUpdateStatus.ts
-  utils/countDownAndCondition.ts

Fix:
- app/(application)/(user)/donation/[id]/index.tsx
- app/(application)/admin/donation/[id]/[status]/index.tsx
- app/(application)/admin/donation/[id]/list-of-donatur.tsx
- app/(application)/admin/donation/[id]/reject-input.tsx
- app/(application)/admin/donation/index.tsx
- app/(application)/admin/event/[id]/[status]/index.tsx
- app/(application)/admin/voting/[id]/[status]/index.tsx
- screens/Admin/Donation/BoxOfDonationStory.tsx
- screens/Donation/BoxPublish.tsx
- screens/Donation/ComponentBoxDetailData.tsx
- service/api-admin/api-admin-donation.ts
- service/api-client/api-master.ts
- utils/colorBadge.ts
git add . && git commit -m
This commit is contained in:
2025-10-28 10:19:47 +08:00
parent 125bf16605
commit 5d4328a139
15 changed files with 487 additions and 132 deletions

View File

@@ -6,7 +6,11 @@ import {
DummyLandscapeImage,
} from "@/components";
export default function AdminDonation_BoxOfDonationStory() {
export default function AdminDonation_BoxOfDonationStory({
data,
}: {
data: any;
}) {
return (
<>
<BaseBox>
@@ -14,19 +18,9 @@ export default function AdminDonation_BoxOfDonationStory() {
<Spacing />
<StackCustom>
<TextCustom>
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Rem magni
perspiciatis eius ipsam provident, impedit, fugiat aliquid nobis
pariatur asperiores fuga quidem temporibus labore, molestias
perferendis optio ipsum. Praesentium, tempore?
</TextCustom>
<DummyLandscapeImage />
<TextCustom>
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Rem magni
perspiciatis eius ipsam provident, impedit, fugiat aliquid nobis
pariatur asperiores fuga quidem temporibus labore, molestias
perferendis optio ipsum. Praesentium, tempore?
</TextCustom>
<TextCustom>{(data && data?.pembukaan) || "-"}</TextCustom>
<DummyLandscapeImage imageId={data?.imageId || "-"} />
<TextCustom>{(data && data?.cerita) || "-"}</TextCustom>
</StackCustom>
</BaseBox>
</>

View File

@@ -0,0 +1,23 @@
import { apiAdminDonationUpdateStatus } from "@/service/api-admin/api-admin-donation";
export const funUpdateStatusDonation = async ({
id,
changeStatus,
data,
}: {
id: string;
changeStatus: "publish" | "review" | "reject";
data?: string;
}) => {
try {
const response = await apiAdminDonationUpdateStatus({
id: id,
changeStatus: changeStatus as any,
data: data,
});
return response;
} catch (error) {
console.log("[ERROR]", error);
throw error;
}
};

View File

@@ -1,11 +1,14 @@
/* eslint-disable react-hooks/exhaustive-deps */
import {
BaseBox,
Grid,
DummyLandscapeImage,
Grid,
ProgressCustom,
StackCustom,
TextCustom,
ProgressCustom,
} from "@/components";
import { countDownAndCondition } from "@/utils/countDownAndCondition";
import { useEffect, useState } from "react";
import { View } from "react-native";
export default function Donation_BoxPublish({
@@ -15,6 +18,27 @@ export default function Donation_BoxPublish({
id: string;
data: any;
}) {
const [value, setValue] = useState({
sisa: 0,
reminder: false,
});
useEffect(() => {
updateCountDown();
}, [data]);
const updateCountDown = () => {
const countDown = countDownAndCondition({
duration: data?.durasiDonasi,
publishTime: data?.publishTime,
});
setValue({
sisa: countDown.durationDay,
reminder: countDown.reminder,
});
};
return (
<>
<BaseBox paddingTop={7} paddingBottom={7} href={`/donation/${id}`}>
@@ -36,7 +60,13 @@ export default function Donation_BoxPublish({
{data?.title || "-"}
</TextCustom>
<TextCustom size="small">
Sisa hari: {data?.durasiDonasi || 0}
{value.reminder ? (
<TextCustom bold color="red">
Waktu berakhir
</TextCustom>
) : (
<TextCustom>Sisa hari: {value.sisa}</TextCustom>
)}
</TextCustom>
</View>
<ProgressCustom

View File

@@ -1,9 +1,9 @@
import {
BaseBox,
StackCustom,
DummyLandscapeImage,
TextCustom,
Grid,
StackCustom,
TextCustom,
} from "@/components";
import { formatCurrencyDisplay } from "@/utils/formatCurrencyDisplay";
import React from "react";
@@ -12,10 +12,15 @@ import { View } from "react-native";
export default function Donation_ComponentBoxDetailData({
bottomSection,
data,
sisaHari,
reminder,
}: {
bottomSection?: React.ReactNode;
data: any;
sisaHari: number;
reminder: boolean;
}) {
return (
<>
<BaseBox>
@@ -25,9 +30,13 @@ export default function Donation_ComponentBoxDetailData({
<TextCustom bold size="large">
{data?.title || "-"}
</TextCustom>
<TextCustom size="small">
Durasi: {data?.DonasiMaster_Durasi?.name || "-"}
</TextCustom>
{reminder ? (
<TextCustom bold color="red">
Waktu berakhir
</TextCustom>
) : (
<TextCustom>Sisa hari: {sisaHari}</TextCustom>
)}
</View>
<Grid>