"use client"; import { DIRECTORY_ID } from "@/lib"; import { IRealtimeData } from "@/lib/global_state"; import { RouterDonasi } from "@/lib/router_hipmi/router_donasi"; import { AccentColor, MainColor, } from "@/app_modules/_global/color/color_pallet"; import { funGlobal_UploadToStorage } from "@/app_modules/_global/fun"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin"; import { Button, Center, CopyButton, FileButton, Grid, Group, Paper, Stack, Text, Title, } from "@mantine/core"; import { IconCamera, IconCircleCheck } from "@tabler/icons-react"; import { useAtom } from "jotai"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { WibuRealtime } from "wibu-pkg"; import TampilanRupiahDonasi from "../../component/tampilan_rupiah"; import { Donasi_funUpdateStatusInvoice } from "../../fun/update/fun_update_status_invoice"; import { gs_donasi_hot_menu } from "../../global_state"; import { MODEL_DONASI_INVOICE } from "../../model/interface"; import { clientLogger } from "@/util/clientLogger"; import { ComponentGlobal_ButtonUploadFileImage } from "@/app_modules/_global/component"; export default function Donasi_InvoiceProses({ dataInvoice, }: { dataInvoice: MODEL_DONASI_INVOICE; }) { const [invoice, setDataInvoice] = useState(dataInvoice); const router = useRouter(); const [file, setFile] = useState(null); const [active, setActive] = useAtom(gs_donasi_hot_menu); const [isLoading, setLoading] = useState(false); async function onClick() { try { setLoading(true); const uploadImage = await funGlobal_UploadToStorage({ file: file as File, dirId: DIRECTORY_ID.donasi_bukti_transfer, }); if (!uploadImage.success) { setLoading(false); ComponentGlobal_NotifikasiPeringatan("Gagal upload file gambar"); return; } const res = await Donasi_funUpdateStatusInvoice({ invoiceId: invoice.id, statusId: "2", fileId: uploadImage.data.id, }); if (res.status === 200) { const dataNotifikasi: IRealtimeData = { appId: res.data?.Donasi?.id as any, status: res.data?.DonasiMaster_StatusInvoice?.name as any, userId: res.data?.Donasi?.authorId as any, pesan: res.data?.Donasi?.title as any, kategoriApp: "DONASI", title: "Donatur telah melakukan transfer", }; const notif = await notifikasiToAdmin_funCreate({ data: dataNotifikasi as any, }); if (notif.status === 201) { WibuRealtime.setData({ type: "notification", pushNotificationTo: "ADMIN", }); ComponentGlobal_NotifikasiBerhasil(res.message); setActive(2); router.push(RouterDonasi.proses_transaksi + `${invoice.id}`); } } else { ComponentGlobal_NotifikasiGagal(res.message); setLoading(false); } } catch (error) { setLoading(false); clientLogger.error("Error upload data invoice", error); } } return ( <> Mohon transfer ke rekening dibawah untuk diteruskan ke {invoice.Donasi.Author.username} Bank {invoice.DonasiMaster_Bank.name} PT. Himpunan Pengusaha Badung {invoice.DonasiMaster_Bank.norek} {({ copied, copy }) => ( )} Jumlah transfer <TampilanRupiahDonasi nominal={+(+invoice.nominal)} /> {({ copied, copy }) => ( )} {/* Sudah termasuk biaya admin Rp. 2.500,- */}
{file ? (
Upload berhasil{" "}
) : (
Upload bukti transfer anda !
)}
{file !== null ? ( ) : ( )}
); }