import { BaseBox, BoxButtonOnFooter, ButtonCustom, ViewWrapper, } from "@/components"; import { RadioCustom, RadioGroup } from "@/components/Radio/RadioCustom"; import { LOCAL_STORAGE_KEY } from "@/constants/local-storage-key"; import { useAuth } from "@/hooks/use-auth"; import { apiDonationCreateInvoice } from "@/service/api-client/api-donation"; import { apiMasterBank } from "@/service/api-client/api-master"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { router, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import { useEffect, useState } from "react"; export default function DonationSelectBank() { const { user } = useAuth(); const { id } = useLocalSearchParams(); const [select, setSelect] = useState(""); const [listBank, setListBank] = useState([]); const [isLoading, setIsLoading] = useState(false); useEffect(() => { loadListBank(); }, []); const loadListBank = async () => { try { const response = await apiMasterBank(); setListBank(response.data); } catch (error) { console.log("[ERROR]", error); setListBank([]); } }; const handlerSubmit = async () => { try { setIsLoading(true); const dataStorage = await AsyncStorage.getItem( LOCAL_STORAGE_KEY.transactionDonation ); if (dataStorage) { const storage = JSON.parse(dataStorage); const newData = { ...storage, bankId: select, authorId: user?.id, }; const response = await apiDonationCreateInvoice({ id: id as string, data: newData, }); if (response.success) { const invoiceId = response.data.id; await AsyncStorage.removeItem(LOCAL_STORAGE_KEY.transactionDonation); router.replace( `/(application)/(user)/donation/[id]/(transaction-flow)/${invoiceId}/invoice` ); } else { console.log("[FAILED]", response); } } } catch (error) { console.log("[ERROR]", error); } finally { setIsLoading(false); } }; const buttonSubmit = () => { return ( <> handlerSubmit()} > Pilih ); }; return ( {_.isEmpty(listBank) ? [] : listBank?.map((item: any, index: number) => ( ))} ); }