"use client"; import ComponentAdminGlobal_TampilanRupiahDonasi from "@/app_modules/admin/component_global/tampilan_rupiah"; import ComponentDonasi_NotedBox from "@/app_modules/donasi/component/noted_box"; import { NotifBerhasil } from "@/app_modules/donasi/component/notifikasi/notif_berhasil"; import { NotifGagal } from "@/app_modules/donasi/component/notifikasi/notif_gagal"; import { NotifPeringatan } from "@/app_modules/donasi/component/notifikasi/notif_peringatan"; import { AspectRatio, Button, Center, FileButton, Image, Paper, Stack, Text, TextInput, Textarea, Title, } from "@mantine/core"; import { IconCamera } from "@tabler/icons-react"; import _, { toNumber } from "lodash"; import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime"; import { useRouter } from "next/navigation"; import { useState } from "react"; import ComponentAdminDonasi_TombolKembali from "../../component/tombol_kembali"; import { AdminDonasi_funCreatePencairanDana } from "../../fun/create/fun_create_pencairan_dana"; import { AdminDonasi_AkumulasiPencairanById } from "../../fun/update/fun_update_akumulasi_pencairan"; import ComponentGlobal_ErrorInput from "@/app_modules/component_global/error_input"; import { ComponentAdminGlobal_NotifikasiPeringatan } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_peringatan"; import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_berhasil"; import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_gagal"; import { AdminDonasi_getOneById } from "../../fun/get/get_one_by_id"; export default function AdminDonasi_PencairanDana({ donasiId, danaTerkumpul, totalPencairan, }: { donasiId: string; danaTerkumpul: string; totalPencairan: number; }) { const [terkumpul, setTerkumpul] = useState(danaTerkumpul); const [total, setTotal] = useState(totalPencairan); return ( <> { setTerkumpul(val.terkumpul); setTotal(val.totalPencairan); console.log(val) }} /> ); } function TotalDanaView({ danaTerkumpul, totalPencairan, }: { danaTerkumpul: string; totalPencairan: number; }) { const terkumpul = toNumber(danaTerkumpul); const sisaDana = terkumpul - totalPencairan; return ( <>
Dana Tersisa { <ComponentAdminGlobal_TampilanRupiahDonasi nominal={sisaDana} fontSize={20} /> }
); } function FormView({ donasiId, danaTerkumpul, totalPencairan, onSuccess, }: { donasiId: string; danaTerkumpul: string; totalPencairan: number; onSuccess: (val: any) => void; }) { const router = useRouter(); const [file, setFile] = useState(null); const [images, setImages] = useState(); const [value, setValue] = useState({ title: "", deskripsi: "", nilai: "", }); const [nilaiNominal, setNilaiNominal] = useState(0); const [isOver, setIsOver] = useState(false); const terkumpul = toNumber(danaTerkumpul); const sisaDana = terkumpul - totalPencairan; return ( <>
Form Pencairan Dana
Rp.} withAsterisk placeholder="0" label="Nominal" maxLength={sisaDana.toLocaleString().length} error={ isOver ? ( ) : ( "" ) } value={value.nilai} onChange={(val) => { // const nilai = val.currentTarget.value; // const nilaiTypeNumber = toNumber(val.currentTarget.value); // if (nilaiTypeNumber > sisaDana) { // console.log("lebih"); // } else { // console.log("kurang"); // } const match = val.currentTarget.value .replace(/\./g, "") .match(/^[0-9]+$/); if (val.currentTarget.value === "") return setValue({ ...value, nilai: "", }); if (!match?.[0]) return null; const nilai = val.currentTarget.value.replace(/\./g, ""); const target = Intl.NumberFormat("id-ID").format(+nilai); if (+nilai > sisaDana) { setIsOver(true); } else { setIsOver(false); } setNilaiNominal(+nilai); setValue({ ...value, nilai: target, }); }} /> { setValue({ ...value, title: val.target.value, }); }} />