import React, { useEffect, useState } from "react"; import { useApiRequest } from "../../../utils/useApiRequest"; import { Grid } from "../../../components/Grid/Grid"; import Table from "../../../components/Table/Table"; import ShowMoreInfo from "../../../components/ShowMoreInfo/ShowMoreInfo"; import ShowStringList from "../../../components/ShowStringList/ShowStringList"; import { AddActivityTypeSettings } from "./AddActivityTypeSettings"; type SettingsType = "purchase_policy" | "service_area"; type CooperativesSettingsTableProps = { settingsType: SettingsType; }; export const CooperativesSettingsTable = ({ settingsType, }: CooperativesSettingsTableProps) => { const [pagesInfo, setPagesInfo] = useState({ page: 1, page_size: 10 }); const [cooperativesTableData, setCooperativesTableData] = useState([]); const { data: cooperativesData, refetch } = useApiRequest({ api: "herd/web/api/v1/rancher_org_link/org_linked_rancher_list", method: "get", params: { ...pagesInfo, }, queryKey: ["cooperatives-settings", pagesInfo], }); const handleUpdate = () => { refetch(); }; useEffect(() => { if (cooperativesData?.results) { const formattedData = cooperativesData.results.map( (item: any, i: number) => { const baseColumns = [ pagesInfo.page === 1 ? i + 1 : i + pagesInfo.page_size * (pagesInfo.page - 1) + 1, item?.name || "-", item?.province || "-", item?.city || "-", item?.rancher_count || 0, item?.herd_count || 0, item?.livestock_count || 0, ]; let lastColumn: React.ReactNode; if (settingsType === "service_area") { lastColumn = item?.org_service_area?.length ? ( city.name, )} /> ) : ( "-" ); } else { lastColumn = item?.org_purchase_policy === "INTERNAL_ONLY" ? "بر اساس تعاونی" : item?.org_purchase_policy === "CROSS_COOP" ? "برای کل استان" : "-"; } // Add editable component const editableColumn = ( ); return [...baseColumns, lastColumn, editableColumn]; }, ); setCooperativesTableData(formattedData); } }, [cooperativesData, pagesInfo, settingsType]); const getColumns = () => { const baseColumns = [ "ردیف", "نام", "استان", "شهر", "تعداد دامدار", "تعداد گله", "تعداد دام", ]; if (settingsType === "service_area") { return [...baseColumns, "محدوده فعالیت", "ویرایش محدوده فعالیت"]; } else { return [...baseColumns, "محدودیت دریافت نهاده", "ویرایش محدودیت"]; } }; return ( { setPagesInfo(e); }} count={cooperativesData?.count || 10} isPaginated title={ settingsType === "service_area" ? "محدوده فعالیت تعاونی ها" : "محدودیت دریافت نهاده تعاونی ها" } columns={getColumns()} rows={cooperativesTableData} /> ); };