diff --git a/src/app_modules/admin/donasi/detail/publish/detail_list_donatur.tsx b/src/app_modules/admin/donasi/detail/publish/detail_list_donatur.tsx index a5caffa8..610f080c 100644 --- a/src/app_modules/admin/donasi/detail/publish/detail_list_donatur.tsx +++ b/src/app_modules/admin/donasi/detail/publish/detail_list_donatur.tsx @@ -1,50 +1,73 @@ -import { AccentColor } from '@/app_modules/_global/color'; -import { AdminColor } from '@/app_modules/_global/color/color_pallet'; -import { ComponentGlobal_TampilanRupiah } from '@/app_modules/_global/component'; -import { apiGetMasterStatusTransaksi } from '@/app_modules/_global/lib/api_fetch_master'; -import { globalStatusTransaksi } from '@/app_modules/_global/lib/master_list_app'; -import { ComponentAdminGlobal_TitlePage } from '@/app_modules/admin/_admin_global/_component'; -import CustomSkeletonAdmin from '@/app_modules/admin/_admin_global/_component/skeleton/customSkeletonAdmin'; -import { MODEL_DONASI } from '@/app_modules/donasi/model/interface'; -import { MODEL_NEW_DEFAULT_MASTER } from '@/app_modules/model_global/interface'; -import { RouterAdminGlobal } from '@/lib'; -import { clientLogger } from '@/util/clientLogger'; -import { Center, Badge, Button, Stack, Group, ActionIcon, Select, Paper, ScrollArea, Table, Pagination, Text, Modal, Title } from '@mantine/core'; -import { useDisclosure, useShallowEffect } from '@mantine/hooks'; -import { IconReload } from '@tabler/icons-react'; -import { useParams, useRouter } from 'next/navigation' -import React, { useState } from 'react'; -import { apiGetAdminAllDaftarDonatur } from '../../lib/api_fetch_admin_donasi'; -import { ComponentAdminGlobal_NotifikasiBerhasil } from '@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil'; -import { ComponentAdminGlobal_NotifikasiGagal } from '@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_gagal'; -import adminNotifikasi_funCreateToUser from '@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user'; -import adminDonasi_funUpdateStatusDanTotal from '../../fun/update/fun_update_status_dan_total'; +import { AccentColor } from "@/app_modules/_global/color"; +import { AdminColor } from "@/app_modules/_global/color/color_pallet"; +import { ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component"; +import { apiGetMasterStatusTransaksi } from "@/app_modules/_global/lib/api_fetch_master"; +import { globalStatusTransaksi } from "@/app_modules/_global/lib/master_list_app"; +import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component"; +import CustomSkeletonAdmin from "@/app_modules/admin/_admin_global/_component/skeleton/customSkeletonAdmin"; +import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil"; +import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_gagal"; +import { Admin_V3_ComponentPaginationBreakpoint } from "@/app_modules/admin/_components_v3/comp_pagination_breakpoint"; +import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user"; +import { MODEL_DONASI } from "@/app_modules/donasi/model/interface"; +import { MODEL_NEW_DEFAULT_MASTER } from "@/app_modules/model_global/interface"; +import { RouterAdminGlobal } from "@/lib"; +import { clientLogger } from "@/util/clientLogger"; +import { + ActionIcon, + Badge, + Button, + Center, + Group, + Modal, + Paper, + ScrollArea, + Select, + Stack, + Table, + Text, + Title +} from "@mantine/core"; +import { useDisclosure, useShallowEffect } from "@mantine/hooks"; +import { IconReload } from "@tabler/icons-react"; +import { useParams, useRouter } from "next/navigation"; +import { useState } from "react"; +import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total"; +import { apiGetAdminAllDaftarDonatur } from "../../lib/api_fetch_admin_donasi"; -function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadDonasi: (val: boolean) => void, donasi: MODEL_DONASI, isReload: boolean }) { +function TampilanListDonatur({ + setReloadDonasi, + donasi, + isReload, +}: { + setReloadDonasi: (val: boolean) => void; + donasi: MODEL_DONASI; + isReload: boolean; +}) { const router = useRouter(); const params = useParams<{ id: string }>(); const donasiId = params.id; const [isLoadingCek, setLoadingCek] = useState(false); const [idData, setIdData] = useState(""); const [lisDonatur, setListDonatur] = useState(null); - const [listStatus, setListStatus] = useState(null); + const [listStatus, setListStatus] = useState< + MODEL_NEW_DEFAULT_MASTER[] | null + >(null); const [isNPage, setNPage] = useState(1); const [isActivePage, setActivePage] = useState(1); const [selectStatus, setSelectStatus] = useState(""); const [isLoadingReload, setIsLoadingReload] = useState(false); - useShallowEffect(() => { handleLoadData(); }, [isActivePage, selectStatus, isReload]); useShallowEffect(() => { handleLoadStatus(); - }, []) + }, []); const handleLoadData = async () => { try { - const cek = globalStatusTransaksi.find((e) => e.id === selectStatus); const response = await apiGetAdminAllDaftarDonatur({ id: donasiId, @@ -53,30 +76,25 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD }); if (response?.success && response?.data?.data) { - setListDonatur(response.data.data); setNPage(response.data.nPage || 1); - setIsLoadingReload(false) + setIsLoadingReload(false); } else { console.error("Invalid data format received:", response); setListDonatur([]); - } } catch (error) { clientLogger.error("Error get data daftar donatur", error); setListDonatur([]); - } - } + }; const handleLoadStatus = async () => { try { const response = await apiGetMasterStatusTransaksi(); - if (response?.success && response?.data) { setListStatus(response.data); - } else { console.error("Invalid data format received:", response); setListStatus(null); @@ -85,34 +103,31 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD clientLogger.error("Error get status donatur", error); setListStatus(null); } - } + }; const onPageClick = async (page: number) => { - setActivePage(page); - } + }; async function onSelect(selectStatus: any) { setSelectStatus(selectStatus); - setActivePage(1) + setActivePage(1); } async function onReload() { setSelectStatus(""); - setIsLoadingReload(true) + setIsLoadingReload(true); handleLoadData(); } - - const renderTableBody = () => { - - if(isLoadingReload) return ( - - -
- Loading Data... -
- - - ) + if (isLoadingReload) + return ( + + +
+ Loading Data... +
+ + + ); if (!Array.isArray(lisDonatur) || lisDonatur.length === 0) { return ( @@ -146,8 +161,8 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD -
- +
+ {e?.DonasiMaster_StatusInvoice?.name}
@@ -155,14 +170,16 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD
{e?.donasiMaster_StatusInvoiceId === "1" || - e?.donasiMaster_StatusInvoiceId === "2" ? ( + e?.donasiMaster_StatusInvoiceId === "2" ? (