diff --git a/src/app/api/donasi/[id]/route.ts b/src/app/api/donasi/[id]/route.ts
new file mode 100644
index 00000000..3d5f7f47
--- /dev/null
+++ b/src/app/api/donasi/[id]/route.ts
@@ -0,0 +1,88 @@
+import { prisma } from "@/lib";
+import { NextResponse } from "next/server";
+export const dynamic = "force-dynamic";
+
+// GET ONE DATA DONASI
+export async function GET(
+ request: Request,
+ context: { params: { id: string } }
+) {
+ try {
+ let dataFix;
+ const { id } = context.params;
+ const { searchParams } = new URL(request.url);
+ const kategori = searchParams.get("cat");
+
+ if (kategori == "semua") {
+ dataFix = await prisma.donasi.findFirst({
+ where: {
+ id: id,
+ },
+ include: {
+ Author: true,
+ imageDonasi: true,
+ CeritaDonasi: true,
+ DonasiMaster_Ketegori: true,
+ DonasiMaster_Durasi: true,
+ DonasiMaster_Status: true,
+ Donasi_Invoice: true,
+ Donasi_Kabar: true,
+ Donasi_PencairanDana: true,
+ },
+ });
+ } else if (kategori == "count") {
+ dataFix = await prisma.donasi_Invoice.count({
+ where: {
+ donasiId: id,
+ donasiMaster_StatusInvoiceId: {
+ equals: "1",
+ },
+ },
+ });
+ } else {
+ let tampil;
+ if (kategori == "author") {
+ tampil = {
+ authorId: true,
+ Author: {
+ select: {
+ username: true,
+ },
+ },
+ };
+ } else if (kategori == "cerita") {
+ tampil = {
+ id: true,
+ createdAt: true,
+ CeritaDonasi: {
+ select: {
+ cerita: true,
+ },
+ },
+ };
+ }
+
+ dataFix = await prisma.donasi.findFirst({
+ where: {
+ id: id,
+ },
+ select: tampil,
+ });
+ }
+
+ return NextResponse.json(
+ { success: true, message: "Berhasil mendapatkan data", data: dataFix },
+ { status: 200 }
+ );
+ } catch (error) {
+ console.error(error);
+ return NextResponse.json(
+ {
+ success: false,
+ message: "Gagal mendapatkan data, coba lagi nanti ",
+ reason: (error as Error).message,
+ },
+ { status: 500 }
+ );
+ }
+}
diff --git a/src/app/api/donasi/[id]/temporary-create/route.ts b/src/app/api/donasi/[id]/temporary-create/route.ts
new file mode 100644
index 00000000..0c286ad6
--- /dev/null
+++ b/src/app/api/donasi/[id]/temporary-create/route.ts
@@ -0,0 +1,28 @@
+import { NextResponse } from "next/server";
+import { prisma } from "@/lib";
+
+export async function GET(
+ request: Request,
+ { params }: { params: { id: string } }
+) {
+ try {
+ const { id } = params;
+ const data = await prisma.donasi_TemporaryCreate.findFirst({
+ where: {
+ id: id,
+ },
+ });
+
+ return NextResponse.json({
+ success: true,
+ message: "Data berhasil diambil",
+ data: data,
+ });
+ } catch (error) {
+ return NextResponse.json({
+ success: false,
+ message: "Terjadi kesalahan saat mengambil data",
+ reason: error as Error,
+ });
+ }
+}
diff --git a/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx b/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx
index 18757e91..b02abb33 100644
--- a/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx
+++ b/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx
@@ -1,17 +1,9 @@
-import { funGetUserIdByToken } from "@/app_modules/_global/fun/get";
import { CreateCeritaPenggalangDonasi } from "@/app_modules/donasi";
-import { Donasi_getTemporaryCreate } from "@/app_modules/donasi/fun/get/get_temporary_create";
-
-export default async function Page({ params }: { params: { id: string } }) {
- const getTemporaryCreate = await Donasi_getTemporaryCreate(params.id);
- const userLoginId = await funGetUserIdByToken();
+export default async function Page() {
return (
<>
-
+
>
);
}
diff --git a/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx b/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx
index c251cc42..0003b80e 100644
--- a/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx
+++ b/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx
@@ -1,14 +1,9 @@
import { DetailDraftDonasi } from "@/app_modules/donasi";
-import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
-
-export default async function Page({ params }: { params: { id: string } }) {
- const donasiId = params.id
- const dataDonasi = await Donasi_getOneById(donasiId);
-
+export default async function Page() {
return (
<>
-
+
>
);
}
diff --git a/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx b/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx
index c7a4279b..8d9d7cbf 100644
--- a/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx
+++ b/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx
@@ -1,12 +1,9 @@
import { DetailReviewDonasi } from "@/app_modules/donasi";
-import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
-
-export default async function Page({ params }: { params: { id: string } }) {
- const dataDonasi = await Donasi_getOneById(params.id);
+export default async function Page() {
return (
<>
-
+
>
);
}
diff --git a/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx b/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx
index e2073b65..bedb001a 100644
--- a/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx
+++ b/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx
@@ -245,7 +245,7 @@ export function Admin_V3_ComponentButtonUserCircle({
color="yellow"
processing
- label={{countNotifikasi}}
+ label={{countNotifikasi ? countNotifikasi : ""}}
>
@@ -284,7 +284,7 @@ export function Admin_V3_ComponentButtonUserCircle({
{countNotifikasi}}
+ label={{countNotifikasi ? countNotifikasi : ""}}
>
diff --git a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
index 6a4c9512..ecd25637 100644
--- a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
+++ b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx
@@ -13,7 +13,6 @@ import {
Box,
} from "@mantine/core";
import { IconCircleChevronRight } from "@tabler/icons-react";
-import moment from "moment";
import { useState } from "react";
import {
AccentColor,
@@ -22,6 +21,8 @@ import {
import ComponentGlobal_Loader from "@/app_modules/_global/component/loader";
import { Comp_V3_SetInnerHTMLWithStiker } from "@/app_modules/_global/component/new/comp_V3_set_html_with_stiker";
import { funReplaceHtml } from "@/app_modules/_global/fun/fun_replace_html";
+import moment from "moment";
+import "moment/locale/id";
export default function ComponentDonasi_CeritaPenggalangMain({
donasi,
@@ -51,9 +52,7 @@ export default function ComponentDonasi_CeritaPenggalangMain({
- {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
- donasi?.createdAt
- )}
+ {moment(donasi?.createdAt).format("DD MMM YYYY")}
(
+ null
+ );
const [file, setFile] = useState(null);
const [img, setImg] = useState();
+ const [userLoginId, setUserLoginId] = useState(null);
+
+ useShallowEffect(() => {
+ handleGetUserId();
+ handleGetTemporaryCreate();
+ }, []);
+
+ async function handleGetUserId() {
+ try {
+ const response = await apiNewGetUserIdByToken();
+
+ if (response) {
+ setUserLoginId(response.userId);
+ }
+ } catch (error) {
+ console.error("Error get data detail", error);
+ }
+ }
+
+ async function handleGetTemporaryCreate() {
+ try {
+ const response = await apiGetTemporaryCreate({ id: id as string });
+
+ if (response && response.success) {
+ setTemporary(response.data);
+ } else {
+ console.log("response temporary create", response.message);
+ }
+ } catch (error) {
+ console.error("Error get temporary create", error);
+ }
+ }
async function onCreate() {
if (_.values(data).includes(""))
return ComponentGlobal_NotifikasiPeringatan("Lengkapin Data");
const body = {
- id: temporary.id,
- title: temporary.title,
- target: temporary.target,
- donasiMaster_KategoriId: temporary.donasiMaster_KategoriId,
- donasiMaster_DurasiId: temporary.donasiMaster_DurasiId,
- authorId: userId,
+ id: temporary?.id,
+ title: temporary?.title,
+ target: temporary?.target,
+ donasiMaster_KategoriId: temporary?.donasiMaster_KategoriId,
+ donasiMaster_DurasiId: temporary?.donasiMaster_DurasiId,
+ authorId: userLoginId as string,
namaBank: data.namaBank,
rekening: data.rekening,
- imageId: temporary.imageId,
+ imageId: temporary?.imageId,
CeritaDonasi: {
pembukaan: data.pembukaan,
cerita: data.cerita,
@@ -139,9 +171,12 @@ export default function CreateCeritaPenggalangDonasi({
clientLogger.error("Error create cerita donasi", error);
}
}
+
+ if (!temporary) return ;
+
return (
<>
-
+
diff --git a/src/app_modules/donasi/create/create_donasi_new.tsx b/src/app_modules/donasi/create/create_donasi_new.tsx
index fd894876..e0495585 100644
--- a/src/app_modules/donasi/create/create_donasi_new.tsx
+++ b/src/app_modules/donasi/create/create_donasi_new.tsx
@@ -116,7 +116,7 @@ export default function CreateDonasiNew() {
return (
<>
-
+