import React, { useEffect, useState } from "react"; import { Button, TextField, Tooltip } from "@mui/material"; import axios from "axios"; import { RiFileExcel2Fill, RiSearchLine } from "react-icons/ri"; import { DRAWER, LOADING_END, LOADING_START, } from "../../../../lib/redux/slices/appSlice"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { Grid } from "../../../../components/grid/Grid"; import ResponsiveTable from "../../../../components/responsive-table/ResponsiveTable"; import { useDispatch, useSelector } from "react-redux"; import { provinceJahadGetRancherInfoDashboardService } from "../../services/province-jahad-get-rancher-dashbored"; import { ProvinceJahadRancherOperations } from "../province-jahad-rancher-operations/ProvinceJahadRancherOperations"; import { ProvinceJahadEditRancher } from "../province-jahad-edit-rancher/ProvinceJahadEditRancher"; export const ProvinceJahadRanchers = () => { const dispatch = useDispatch(); const handleTextChange = (event) => { setTextValue(event.target.value); }; const userKey = useSelector((state) => state.userSlice.userProfile.key); const [data, setData] = useState([]); const [totalRows, setTotalRows] = useState(0); const [perPage, setPerPage] = useState(10); const [textValue, setTextValue] = useState(""); const [page, setPage] = useState(1); const [tableData, setTableData] = useState([]); const [dashboardData, setDashboardData] = useState([]); const fetchApiData = async (page) => { let response; dispatch(LOADING_START()); response = await axios.get( `/LiveStock/rancher/rancher-view/?search=filter&value=${textValue}&role=${getRoleFromUrl()}&page=${page}&page_size=${perPage}` ); dispatch(LOADING_END()); setData(response.data.results); setTotalRows(response.data.count); }; const handlePageChange = (page) => { fetchApiData(page); setPage(page); }; const handlePerRowsChange = (perRows) => { setPerPage(perRows); setPage(1); }; const updateTable = () => { fetchApiData(page !== 0 ? page : 1); }; const getDashboardData = () => { dispatch( provinceJahadGetRancherInfoDashboardService({ search: textValue, }) ).then((r) => { setDashboardData(r.payload.data); }); }; useEffect(() => { getDashboardData(); }, []); useEffect(() => { const d = data?.map((item, i) => { return [ page === 1 ? i + 1 : i + perPage * (page - 1) + 1, item?.type === "rural" ? "روستایی" : "صنعتی", item?.name, item?.herdCode, item?.epidemiologicalCode, item?.postalCode, item?.unitId, item?.herdName, item?.nationalId, // item?.user?.fullname, item?.mobile, item?.contractorCode || "-", item?.city, item?.registeringUser || "-", item?.type === "rural" ? "-" : item?.dhiAmount?.toLocaleString(), , ]; }); setTableData(d); }, [data]); useEffect(() => { fetchApiData(1); }, [dispatch, perPage]); const handleSubmit = async (event) => { event.preventDefault(); dispatch(LOADING_START()); try { const response = await axios.get( `/LiveStock/rancher/rancher-view/?search=filter&value=${textValue}&role=${getRoleFromUrl()}&page=${page}&page_size=${perPage}` ); setData(response.data.results); setTotalRows(response.data.count); dispatch( provinceJahadGetRancherInfoDashboardService({ search: textValue, }) ).then((r) => { setDashboardData(r.payload.data); }); dispatch(LOADING_END()); } catch (error) { console.error("Error fetching data:", error); } }; return (
); };