diff --git a/src/app/api/admin/event/[id]/peserta/route.ts b/src/app/api/admin/event/[id]/peserta/route.ts
index 65be8b1c..ccd6d66b 100644
--- a/src/app/api/admin/event/[id]/peserta/route.ts
+++ b/src/app/api/admin/event/[id]/peserta/route.ts
@@ -25,6 +25,7 @@ export async function GET(request: Request,
User: {
username: {
contains: search ? search : "",
+ mode: "insensitive",
}
}
@@ -47,6 +48,7 @@ export async function GET(request: Request,
User: {
username: {
contains: search ? search : "",
+ mode: "insensitive",
}
}
},
@@ -63,6 +65,12 @@ export async function GET(request: Request,
const nCount = await prisma.event_Peserta.count({
where: {
eventId: eventId,
+ User: {
+ username: {
+ contains: search ? search : "",
+ mode: "insensitive",
+ }
+ }
},
});
diff --git a/src/app/api/admin/investasi/detail/[id]/route.ts b/src/app/api/admin/investasi/[id]/detail/route.ts
similarity index 97%
rename from src/app/api/admin/investasi/detail/[id]/route.ts
rename to src/app/api/admin/investasi/[id]/detail/route.ts
index 94145ac8..6fd0ebc9 100644
--- a/src/app/api/admin/investasi/detail/[id]/route.ts
+++ b/src/app/api/admin/investasi/[id]/detail/route.ts
@@ -5,13 +5,14 @@ import { NextResponse } from "next/server";
export async function GET(req: Request,
{ params }: { params: { id: string } }) {
- console.log("Ini ID", params.id);
+
try {
const { id } = params;
+ const investasiId = id;
const data = await prisma.investasi.findUnique({
where: {
- id: id,
+ id: investasiId,
},
select: {
imageId: true,
diff --git a/src/app/api/admin/investasi/[status]/route.ts b/src/app/api/admin/investasi/status/[status]/route.ts
similarity index 100%
rename from src/app/api/admin/investasi/[status]/route.ts
rename to src/app/api/admin/investasi/status/[status]/route.ts
diff --git a/src/app/api/admin/job/[status]/route.ts b/src/app/api/admin/job/[status]/route.ts
index 0dfd891f..d86f8740 100644
--- a/src/app/api/admin/job/[status]/route.ts
+++ b/src/app/api/admin/job/[status]/route.ts
@@ -31,7 +31,7 @@ export async function GET(request: Request, { params }: {
const fixStatus = _.startCase(status);
if (!page) {
- const data = await prisma.job.findMany({
+ fixData = await prisma.job.findMany({
orderBy: {
updatedAt: "desc"
},
@@ -79,6 +79,9 @@ export async function GET(request: Request, { params }: {
where: {
isActive: true,
isArsip: false,
+ MasterStatus: {
+ name: fixStatus
+ },
title: {
contains: search ? search : "",
mode: "insensitive"
diff --git a/src/app/dev/admin/investasi/detail/publish/[id]/page.tsx b/src/app/dev/admin/investasi/detail/publish/[id]/page.tsx
index b87747e9..7d8582cd 100644
--- a/src/app/dev/admin/investasi/detail/publish/[id]/page.tsx
+++ b/src/app/dev/admin/investasi/detail/publish/[id]/page.tsx
@@ -1,4 +1,5 @@
import { AdminInvestasi_DetailPublish } from "@/app_modules/admin/investasi";
+import { apiGetAdminInvestasiById } from "@/app_modules/admin/investasi/_lib/api_fetch_admin_investasi";
import {
adminInvestasi_funGetAllTransaksiById,
adminInvestasi_getStatusInvestasi,
@@ -7,20 +8,24 @@ import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_b
export default async function Page({ params }: { params: { id: string } }) {
const investasiId = params.id;
- const dataInvestasi = await getOneInvestasiById(investasiId);
const statusTransaksi = await adminInvestasi_getStatusInvestasi();
- const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
- investasiId,
- page: 1,
- });
+ const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
+ investasiId,
+ page: 1,
+ });
+ // export default async function Page({ params }: { params: { id: string } }) {
+ // const investasiId = params.id;
+ // const dataInvestasi = await getOneInvestasiById(investasiId);
+ // const statusTransaksi = await adminInvestasi_getStatusInvestasi();
+ // const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
+ // investasiId,
+ // page: 1,
+ // });
return (
<>
-
>
);
diff --git a/src/app/dev/admin/investasi/detail/review/[id]/page.tsx b/src/app/dev/admin/investasi/detail/review/[id]/page.tsx
index 840957b1..b19f6d87 100644
--- a/src/app/dev/admin/investasi/detail/review/[id]/page.tsx
+++ b/src/app/dev/admin/investasi/detail/review/[id]/page.tsx
@@ -1,13 +1,12 @@
import { Admin_KonfirmasiInvestasi } from "@/app_modules/admin/investasi";
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
-export default async function Page({ params }: { params: { id: string } }) {
- const investasiId = params.id;
- const dataInvestasi = await getOneInvestasiById(investasiId);
+export default async function Page() {
+
return (
<>
-
+
>
);
}
diff --git a/src/app/dev/admin/investasi/konfirmasi/[id]/page.tsx b/src/app/dev/admin/investasi/konfirmasi/[id]/page.tsx
index 96111822..533187e5 100644
--- a/src/app/dev/admin/investasi/konfirmasi/[id]/page.tsx
+++ b/src/app/dev/admin/investasi/konfirmasi/[id]/page.tsx
@@ -1,14 +1,14 @@
import { Admin_KonfirmasiInvestasi } from "@/app_modules/admin/investasi";
import { adminInvestasi_getOneById } from "@/app_modules/admin/investasi/fun";
-export default async function Page({ params }: { params: { id: string } }) {
- const investasiId = params.id;
- const dataInvestasi = await adminInvestasi_getOneById({investasiId});
+export default async function Page() {
+ // const investasiId = params.id;
+ // const dataInvestasi = await adminInvestasi_getOneById({investasiId});
// console.log(dataUser)
return (
<>
-
+
>
);
}
diff --git a/src/app_modules/admin/investasi/_component/detail_data_author.tsx b/src/app_modules/admin/investasi/_component/detail_data_author.tsx
index 04c27b8b..97b1d703 100644
--- a/src/app_modules/admin/investasi/_component/detail_data_author.tsx
+++ b/src/app_modules/admin/investasi/_component/detail_data_author.tsx
@@ -1,55 +1,56 @@
import { AdminColor } from "@/app_modules/_global/color/color_pallet";
+import CustomSkeleton from "@/app_modules/components/CustomSkeleton";
import { MODEL_USER } from "@/app_modules/home/model/interface";
import { Paper, Stack, Title, Grid, Text } from "@mantine/core";
export function ComponentAdminInvestasi_DetailDataAuthor({
data,
}: {
- data: any;
+ data: MODEL_USER;
}) {
return (
-
-
-
-
-
-
- Data User
-
-
-
- Nama:
-
-
- {data?.Profile?.name}
-
-
-
-
- Username:
-
-
- @{data?.username}
-
-
-
-
- Nomor:
-
-
- + {data?.nomor}
-
-
-
-
- Alamat:
-
-
- {data?.Profile?.alamat}
-
-
+ <>
+ {!data ? ()
+ : (
+
+ Data User
+
+
+
+ Nama:
+
+
+ {data?.Profile?.name}
+
+
+
+
+ Username:
+
+
+ @{data?.username}
+
+
+
+
+ Nomor:
+
+
+ + {data?.nomor}
+
+
+
+
+ Alamat:
+
+
+ {data?.Profile?.alamat}
+
+
+
-
-
+ )}
+ >
);
}
+{/* */ }
diff --git a/src/app_modules/admin/investasi/_component/detail_data_investasi.tsx b/src/app_modules/admin/investasi/_component/detail_data_investasi.tsx
index 21980d70..8e7e1c22 100644
--- a/src/app_modules/admin/investasi/_component/detail_data_investasi.tsx
+++ b/src/app_modules/admin/investasi/_component/detail_data_investasi.tsx
@@ -1,83 +1,85 @@
import { AdminColor } from "@/app_modules/_global/color/color_pallet";
+import CustomSkeleton from "@/app_modules/components/CustomSkeleton";
import { Paper, Stack, Title, Grid, Box, Text } from "@mantine/core";
export function ComponentAdminInvestasi_DetailData({ data }: { data: any }) {
return (
<>
-
-
- Rincian Data Investasi
-
-
-
-
- Judul
- {data?.title}
-
+ {!data ? () :
+ (
+
+ Rincian Data Investasi
+
+
+
+
+ Judul
+ {data?.title}
+
-
- Dana Dibutuhkan
-
- Rp.{" "}
- {new Intl.NumberFormat("id-ID", {
- maximumFractionDigits: 10,
- }).format(+data.targetDana)}
-
-
+
+ Dana Dibutuhkan
+
+ Rp.{" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+data?.targetDana)}
+
+
-
- Harga Per Lembar
-
- Rp.{" "}
- {new Intl.NumberFormat("id-ID", {
- maximumFractionDigits: 10,
- }).format(+data.hargaLembar)}{" "}
-
-
+
+ Harga Per Lembar
+
+ Rp.{" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+data?.hargaLembar)}{" "}
+
+
-
- Total Lembar
-
- {" "}
- {new Intl.NumberFormat("id-ID", {
- maximumFractionDigits: 10,
- }).format(+data.totalLembar)}{" "}
- lembar
-
-
-
-
+
+ Total Lembar
+
+ {" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+data?.totalLembar)}{" "}
+ lembar
+
+
+
+
-
-
-
- ROI
- {data.roi} %
-
+
+
+
+ ROI
+ {data?.roi} %
+
-
- Pembagian Deviden
- {data.MasterPeriodeDeviden.name}
-
+
+ Pembagian Deviden
+ {data?.MasterPeriodeDeviden.name}
+
-
- Jadwal Pembagian
-
- {data.MasterPembagianDeviden.name} bulan{" "}
-
-
+
+ Jadwal Pembagian
+
+ {data?.MasterPembagianDeviden.name} bulan{" "}
+
+
-
- Pencarian Investor
-
- {data.MasterPencarianInvestor.name} hari{" "}
-
-
-
-
-
-
-
+
+ Pencarian Investor
+
+ {data?.MasterPencarianInvestor.name} hari{" "}
+
+
+
+
+
+
+ )}
>
);
}
diff --git a/src/app_modules/admin/investasi/_component/skeleton_admin_investasi.tsx b/src/app_modules/admin/investasi/_component/skeleton_admin_investasi.tsx
new file mode 100644
index 00000000..bb41f911
--- /dev/null
+++ b/src/app_modules/admin/investasi/_component/skeleton_admin_investasi.tsx
@@ -0,0 +1,38 @@
+import CustomSkeleton from '@/app_modules/components/CustomSkeleton';
+import { Box, SimpleGrid, Stack } from '@mantine/core';
+import React from 'react';
+
+function SkeletonAdminInvestasi() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default SkeletonAdminInvestasi;
diff --git a/src/app_modules/admin/investasi/_lib/api_fetch_admin_investasi.ts b/src/app_modules/admin/investasi/_lib/api_fetch_admin_investasi.ts
index dc1d4ed9..e82c8a55 100644
--- a/src/app_modules/admin/investasi/_lib/api_fetch_admin_investasi.ts
+++ b/src/app_modules/admin/investasi/_lib/api_fetch_admin_investasi.ts
@@ -38,7 +38,7 @@ const apiGetAdminInvestasiByStatus = async ({ status, page, search }: {
const isPage = page ? `?page=${page}` : "";
const isSearch = search ? `&search=${search}` : "";
- const response = await fetch(`/api/admin/investasi/${status}${isPage}${isSearch}`, {
+ const response = await fetch(`/api/admin/investasi/status/${status}${isPage}${isSearch}`, {
method: "GET",
headers: {
"Content-Type": "application/json",
@@ -56,7 +56,7 @@ const apiGetAdminInvestasiById = async ({id} : {id: string}) => {
if (!token) return await token.json().catch(() => null);
- const response = await fetch(`/api/admin/investasi/detail/${id}`, {
+ const response = await fetch(`/api/admin/investasi/${id}/detail`, {
method: "GET",
headers: {
"Content-Type": "application/json",
@@ -66,6 +66,5 @@ const apiGetAdminInvestasiById = async ({id} : {id: string}) => {
}
})
- console.log("Ini data Response", await response.json())
return await response.json().catch(() => null);
}
\ No newline at end of file
diff --git a/src/app_modules/admin/investasi/_view/detail/view_detail_data.tsx b/src/app_modules/admin/investasi/_view/detail/view_detail_data.tsx
index 7761be7c..5b08494b 100644
--- a/src/app_modules/admin/investasi/_view/detail/view_detail_data.tsx
+++ b/src/app_modules/admin/investasi/_view/detail/view_detail_data.tsx
@@ -4,6 +4,7 @@ import { ComponentAdminInvestasi_DetailDataAuthor } from "../../_component/detai
import { ComponentAdminInvestasi_DetailData } from "../../_component/detail_data_investasi";
import { ComponentAdminInvestasi_DetailGambar } from "../../_component/detail_gambar_investasi";
import { ComponentAdminInvestasi_UIDetailFile } from "../../_component/ui_detail_file";
+import SkeletonAdminInvestasi from "../../_component/skeleton_admin_investasi";
export function AdminInvestasi_ViewDetailData({
data,
@@ -12,6 +13,7 @@ export function AdminInvestasi_ViewDetailData({
}) {
return (
<>
+ {!data ? () : ( <>
{/* Data Author */}
-
+
{/* Data Foto */}
-
+
{/* Data Detail */}
-
+
+ >)}
>
);
}
diff --git a/src/app_modules/admin/investasi/detail/detail_publish.tsx b/src/app_modules/admin/investasi/detail/detail_publish.tsx
index 0fc0eeb7..662e2d45 100644
--- a/src/app_modules/admin/investasi/detail/detail_publish.tsx
+++ b/src/app_modules/admin/investasi/detail/detail_publish.tsx
@@ -12,18 +12,20 @@ import {
} from "../_view";
import { useAtom } from "jotai";
import { gs_admin_invetasi_menu_publish } from "../_lib/global_state";
+import { useParams } from "next/navigation";
+import { apiGetAdminInvestasiById } from "../_lib/api_fetch_admin_investasi";
+import { clientLogger } from "@/util/clientLogger";
+import { useShallowEffect } from "@mantine/hooks";
export function AdminInvestasi_DetailPublish({
- data,
dataTransaksi,
statusTransaksi,
- investasiId,
}: {
- data: MODEL_INVESTASI;
dataTransaksi: any[];
statusTransaksi: any[];
- investasiId: string;
-}) {
+ }) {
+ const params = useParams<{ id: string }>();
+ const [data, setData] = useState(null);
const [selectPage, setSelectPage] = useAtom(gs_admin_invetasi_menu_publish);
const listPage = [
{
@@ -43,6 +45,23 @@ export function AdminInvestasi_DetailPublish({
// },
];
+ useShallowEffect(() => {
+ loadInitialData()
+ }, []);
+ const loadInitialData = async () => {
+ try {
+ const response = await apiGetAdminInvestasiById({
+ id: params.id
+ })
+
+ if (response?.success && response?.data) {
+ setData(response.data)
+ }
+ } catch (error) {
+ clientLogger.error("Invalid data format recieved:", error)
+ setData(null);
+ }
+ }
return (
<>
@@ -65,13 +84,13 @@ export function AdminInvestasi_DetailPublish({
{selectPage == "1" ? (
-
+
) : null}
{selectPage == "2" ? (
) : null}
diff --git a/src/app_modules/admin/investasi/detail/detail_reject.tsx b/src/app_modules/admin/investasi/detail/detail_reject.tsx
index b901051a..9ab43ead 100644
--- a/src/app_modules/admin/investasi/detail/detail_reject.tsx
+++ b/src/app_modules/admin/investasi/detail/detail_reject.tsx
@@ -52,7 +52,7 @@ export function AdminInvestasi_DetailReject({ data }: { data: MODEL_INVESTASI })
]}
>
{/* Data Author */}
-
+
{/* Data Foto */}
diff --git a/src/app_modules/admin/investasi/detail/detail_review.tsx b/src/app_modules/admin/investasi/detail/detail_review.tsx
index 57c3cebd..df0992c3 100644
--- a/src/app_modules/admin/investasi/detail/detail_review.tsx
+++ b/src/app_modules/admin/investasi/detail/detail_review.tsx
@@ -4,10 +4,10 @@ import { IRealtimeData } from "@/lib/global_state";
import { MainColor } from "@/app_modules/_global/color";
import { MODEL_INVESTASI } from "@/app_modules/investasi/_lib/interface";
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
-import { Button, Group, SimpleGrid, Stack } from "@mantine/core";
+import { Button, Group, SimpleGrid, Stack, Loader } from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import _ from "lodash";
-import { useRouter } from "next/navigation";
+import { useParams, useRouter } from "next/navigation";
import { useState } from "react";
import { WibuRealtime } from "wibu-pkg";
import { Admin_ComponentModalReport } from "../../_admin_global/_component";
@@ -23,33 +23,49 @@ import { ComponentAdminInvestasi_DetailGambar } from "../_component/detail_gamba
import { ComponentAdminInvestasi_UIDetailFile } from "../_component/ui_detail_file";
import { adminInvestasi_funEditStatusPublishById } from "../fun/edit/fun_status_publish_by_id";
import Admin_funRejectInvestasi from "../fun/fun_reject_investasi";
+import { clientLogger } from "@/util/clientLogger";
+import { apiGetAdminInvestasiById } from "../_lib/api_fetch_admin_investasi";
+import SkeletonAdminInvestasi from "../_component/skeleton_admin_investasi";
-export default function AdminInvestasi_DetailReview({
- dataInvestasi,
-}: {
- dataInvestasi: MODEL_INVESTASI;
-}) {
+export default function AdminInvestasi_DetailReview() {
+ const params = useParams<{ id: string }>();
const router = useRouter();
- const [data, setData] = useState(dataInvestasi);
+ const [data, setData] = useState(null);
const [publish, setPublish] = useState(true);
const [openModalPublish, setOpenModalPublish] = useState(false);
const [openModalReject, setOpenModalReject] = useState(false);
const [isLoadingPublish, setIsLoadingPublish] = useState(false);
const [isLoadingReject, setIsLoadingReject] = useState(false);
const [report, setReport] = useState("");
+ const investasiId = params;
useShallowEffect(() => {
cekStatusPublish();
- // omload()
+ loadInitialData();
}, []);
+ const loadInitialData = async () => {
+ try {
+ const response = await apiGetAdminInvestasiById({
+ id: params.id,
+ })
+
+ if (response?.success && response?.data) {
+ setData(response.data);
+ }
+ } catch (error) {
+ clientLogger.error("Invalid data format recieved:", error);
+ setData(null);
+ }
+}
+
async function cekStatusPublish() {
- if (data.MasterStatusInvestasi.id === "3") setPublish(false);
+ if (data?.MasterStatusInvestasi.id === "3") setPublish(false);
}
async function onReject() {
const body = {
- id: data.id,
+ id: data?.id,
catatan: report,
status: "4",
};
@@ -81,8 +97,8 @@ export default function AdminInvestasi_DetailReview({
});
}
- const loadData = await getOneInvestasiById(data.id);
- setData(loadData as any);
+ // const loadData = await getOneInvestasiById(data?.id);
+ // setData(loadData as any);
ComponentAdminGlobal_NotifikasiBerhasil(res.message);
router.back();
@@ -96,7 +112,7 @@ export default function AdminInvestasi_DetailReview({
async function onPublish() {
const res = await adminInvestasi_funEditStatusPublishById({
- investasiId: data.id,
+ investasiId: data?.id as any,
statusId: "1",
progesInvestasiId: "1",
});
@@ -128,7 +144,7 @@ export default function AdminInvestasi_DetailReview({
dataMessage: dataNotifikasi,
});
- const loadData = await getOneInvestasiById(data.id);
+ const loadData = await getOneInvestasiById(data?.id as any);
setData(loadData as any);
ComponentAdminGlobal_NotifikasiBerhasil("Proyek Investasi Di Publish");
@@ -143,6 +159,9 @@ export default function AdminInvestasi_DetailReview({
}
}
+ if (!data) {
+ return
+ }
return (
@@ -151,7 +170,7 @@ export default function AdminInvestasi_DetailReview({
- {data.masterStatusInvestasiId === "2" ? (
+ {data?.masterStatusInvestasiId === "2" ? (