/* eslint-disable react-hooks/exhaustive-deps */ import { ActionIcon, BadgeCustom, CenterCustom, LoaderCustom, SelectCustom, StackCustom, TextCustom, ViewWrapper, } from "@/components"; import { IconView } from "@/components/_Icon/IconComponent"; import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; import { GridViewCustomSpan } from "@/components/_ShareComponent/GridViewCustomSpan"; import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; import { apiAdminDonationListOfDonatur } from "@/service/api-admin/api-admin-donation"; import { apiMasterTransaction } from "@/service/api-client/api-master"; import { colorBadgeTransaction } from "@/utils/colorBadge"; import { router, useFocusEffect, useLocalSearchParams } from "expo-router"; import _ from "lodash"; import React, { useEffect } from "react"; import { View } from "react-native"; import { Divider } from "react-native-paper"; export default function AdminDonasiListOfDonatur() { const { id } = useLocalSearchParams(); const [listData, setListData] = React.useState(null); const [loadData, setLoadData] = React.useState(false); const [master, setMaster] = React.useState([]); const [selectValue, setSelectValue] = React.useState(null); const [selectedStatus, setSelectedStatus] = React.useState( null ); useFocusEffect( React.useCallback(() => { onLoadData(); }, [id, selectValue]) ); const onLoadData = async () => { try { setLoadData(true); const response = await apiAdminDonationListOfDonatur({ id: id as string, status: selectedStatus as any, }); // console.log("[LIST OF DONATUR]", JSON.stringify(response, null, 2)); if (response.success) { setListData(response.data); } } catch (error) { console.log("[ERROR]", error); setListData([]); } finally { setLoadData(false); } }; useEffect(() => { onLoadMaster(); }, []); const onLoadMaster = async () => { try { const response = await apiMasterTransaction(); if (response.success) { setMaster(response.data); } } catch (error) { console.log("[ERROR]", error); setMaster([]); } }; const searchComponent = ( ({ label: item.name, value: item.id, })) } value={selectValue} onChange={(value: any) => { setSelectValue(value); const nameSelected = master.find((item: any) => item.id === value); const statusChooses = _.lowerCase(nameSelected?.name); setSelectedStatus(statusChooses); }} styleContainer={{ width: "100%", marginBottom: 0 }} allowClear /> ); return ( <> } > Aksi } component2={ Donatur } component3={ Status } /> {loadData ? ( ) : _.isEmpty(listData) ? ( Belum ada data ) : ( listData?.map((item: any, index: number) => ( } onPress={() => { router.push( `/admin/donation/${item?.id}/${_.lowerCase( item?.DonasiMaster_StatusInvoice?.name )}/transaction-detail` ); }} /> } component2={ {item?.Author?.username || "-"} } component3={ {item?.DonasiMaster_StatusInvoice?.name} } /> )) )} ); }