/* eslint-disable react-hooks/exhaustive-deps */ import { ButtonCenteredOnly, ButtonCustom, InformationBox, LandscapeFrameUploaded, Spacing, StackCustom, TextAreaCustom, TextInputCustom, ViewWrapper, } from "@/components"; import DIRECTORY_ID from "@/constants/directory-id"; import { useAuth } from "@/hooks/use-auth"; import { apiDonationCreate, apiDonationGetOne, } from "@/service/api-client/api-donation"; import { uploadFileService } from "@/service/upload-service"; import pickFile from "@/utils/pickFile"; import { router, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useEffect, useState } from "react"; import Toast from "react-native-toast-message"; export default function DonationCreateStory() { const { user } = useAuth(); const { id } = useLocalSearchParams(); const [temporary, setTemporary] = useState(); const [data, setData] = useState({ pembukaan: "", cerita: "", namaBank: "", rekening: "", }); const [imageStory, setImageStory] = useState(null); const [isLoading, setLoading] = useState(false); useEffect(() => { onLoadData(); }, [id]); const onLoadData = async () => { try { const response = await apiDonationGetOne({ id: id as string, category: "temporary", }); setTemporary(response.data); } catch (error) { console.log("[ERROR]", error); } }; const handlerSubmit = async () => { if (_.values(data).includes("")) { Toast.show({ type: "error", text1: "Harap isi semua data", }); return; } try { setLoading(true); const responseUploadImageDonasi = await uploadFileService({ imageUri: imageStory, dirId: DIRECTORY_ID.donasi_cerita_image, }); const newData = { // Data Donasi temporaryId: temporary?.id, authorId: user?.id, title: temporary?.title, target: temporary?.target, donasiMaster_KategoriId: temporary?.donasiMaster_KategoriId, donasiMaster_DurasiId: temporary?.donasiMaster_DurasiId, imageId: temporary?.imageId, // Data Bank namaBank: data.namaBank, rekening: data.rekening, // Data Cerita imageCeritaId: responseUploadImageDonasi.data.id, pembukaan: data.pembukaan, cerita: data.cerita, }; const response = await apiDonationCreate({ data: newData, category: "permanent", }); if (!response.success) { Toast.show({ type: "error", text1: "Gagal membuat donasi", }); } Toast.show({ type: "success", text1: "Donasi berhasil disimpan", }); router.replace("/donation/status"); } catch (error) { console.log("[ERROR]", error); } finally { setLoading(false); } }; return ( setData({ ...data, pembukaan: value })} /> setData({ ...data, cerita: value })} /> { pickFile({ allowedType: "image", setImageUri: ({ uri }) => { setImageStory(uri); }, }); }} icon="upload" > Upload setData({ ...data, namaBank: value })} /> setData({ ...data, rekening: value })} /> { handlerSubmit(); }} > Simpan ); }