"use client"; import { DIRECTORY_ID } from "@/app/lib"; import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; import { MainColor } from "@/app_modules/_global/color/color_pallet"; import { ComponentGlobal_BoxUploadImage } from "@/app_modules/_global/component"; import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; import ComponentGlobal_InputCountDown from "@/app_modules/_global/component/input_countdown"; 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 { AspectRatio, Button, FileButton, Group, Image, Stack, Text, TextInput, Textarea, } from "@mantine/core"; import { IconCamera, IconUpload } from "@tabler/icons-react"; import { useAtom } from "jotai"; import _ from "lodash"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { Donasi_funCreate } from "../fun/create/fun_create_donasi"; import { gs_donasi_hot_menu, gs_donasi_tabs_posting } from "../global_state"; import { MODEL_DONASI_TEMPORARY } from "../model/interface"; import { IRealtimeData } from "@/app/lib/global_state"; import { WibuRealtime } from "wibu-pkg"; export default function CreateCeritaPenggalangDonasi({ dataTemporary, userId, }: { dataTemporary: MODEL_DONASI_TEMPORARY; userId: string; }) { const router = useRouter(); const [isLoading, setLoading] = useState(false); const [donasiHotMenu, setDonasiHotMenu] = useAtom(gs_donasi_hot_menu); const [data, setData] = useState({ pembukaan: "", cerita: "", namaBank: "", rekening: "", }); const [temporary, setTemporary] = useState(dataTemporary); const [file, setFile] = useState(null); const [img, setImg] = useState(); 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, namaBank: data.namaBank, rekening: data.rekening, imageId: temporary.imageId, CeritaDonasi: { pembukaan: data.pembukaan, cerita: data.cerita, }, }; try { setLoading(true); const uploadImage = await funGlobal_UploadToStorage({ file: file as File, dirId: DIRECTORY_ID.donasi_cerita_image, }); if (!uploadImage.success) { setLoading(false); return ComponentGlobal_NotifikasiPeringatan("Gagal upload file gambar"); } const res = await Donasi_funCreate({ data: body as any, fileId: uploadImage.data.id, }); if (res.status === 201) { const dataNotifikasi: IRealtimeData = { appId: res.data?.id as any, status: res.data?.DonasiMaster_Status?.name as any, userId: res.data?.authorId as any, pesan: res.data?.title as any, kategoriApp: "DONASI", title: "Donasi baru", }; const notif = await notifikasiToAdmin_funCreate({ data: dataNotifikasi as any, }); if (notif.status === 201) { WibuRealtime.setData({ type: "notification", pushNotificationTo: "ADMIN", }); WibuRealtime.setData({ type: "trigger", pushNotificationTo: "ADMIN", dataMessage: dataNotifikasi, }); setDonasiHotMenu(1); ComponentGlobal_NotifikasiBerhasil(res.message); router.push(RouterDonasi.status_galang_dana({ id: "2" }), { scroll: false, }); } setLoading(false); } else { ComponentGlobal_NotifikasiGagal(res.message); setLoading(false); } } catch (error) { console.log(error); } } return ( <> {/*
{JSON.stringify(dataTempo, null, 2)}
*/}