import { ButtonCenteredOnly, ButtonCustom, InformationBox, LandscapeFrameUploaded, OS_Wrapper, Spacing, StackCustom, TextAreaCustom, TextInputCustom, } from "@/components"; import DIRECTORY_ID from "@/constants/directory-id"; import { apiInvestmentCreateNews } from "@/service/api-client/api-investment"; import { uploadFileService } from "@/service/upload-service"; import pickFile, { IFileData } from "@/utils/pickFile"; import { router, useLocalSearchParams } from "expo-router"; import { useState } from "react"; import Toast from "react-native-toast-message"; export default function InvestmentAddNews() { const { id } = useLocalSearchParams(); const [image, setImage] = useState(null); const [data, setData] = useState({ title: "", deskripsi: "", }); const [isLoading, setIsLoading] = useState(false); const handlerSubmit = async () => { let imageId = ""; if (!data.title || !data.deskripsi) { Toast.show({ type: "error", text1: "Judul dan deskripsi harus diisi", }); return; } try { setIsLoading(true); if (image) { const uploadImage = await uploadFileService({ dirId: DIRECTORY_ID.investasi_berita, imageUri: image.uri, }); imageId = uploadImage.data.id; } const newData = { id: id as string, title: data.title, deskripsi: data.deskripsi, imageId: imageId, }; const response = await apiInvestmentCreateNews({ id: id as string, data: newData, }); if (response.success) { Toast.show({ type: "success", text1: "Berita berhasil disimpan", }); router.back(); } else { Toast.show({ type: "error", text1: "Gagal menyimpan berita", }); } } catch (error) { console.log("[ERROR]", error); } finally { setIsLoading(false); } }; return ( { pickFile({ allowedType: "image", setImageUri(file) { setImage(file); }, }); }} icon="upload" > Upload setData({ ...data, title: value })} /> setData({ ...data, deskripsi: value })} /> Simpan ); }