import { Box, HStack, Text } from "@chakra-ui/react"; import MainFrame from "../../../components/MainFrame" import DataTable from "../../../components/DataTable"; import { Switch } from "../../../components/ui/switch"; import CountryAddModel from "./CountryAddModel"; import EditCountryModel from "./EditCountryModel"; import { CountryData, useCountryToggleMutation, useGetCountryMasterQuery } from "../../../Redux/Service/country.master"; import { useEffect, useState } from "react"; import SearchComponent from "../../../components/SearchComponent"; import { useDebounce } from "../../../components/Hooks/useDebounce"; // table data const tableHeadRow = [ "Sr. No", "Title", "Action" ]; // const managepost: any[] = [ // ...Array.from({ length: 12 }, (_, i) => ({ // "Sr. No": i + 1, // "Title": "Lorem Ipsum", // "Action": ( // // // // // // // ), // })), // ]; const Country = () => { const [currentPage, setCurrentPage] = useState(1); // const { data, refetch } = useGetCountryMasterQuery(currentPage) const [countryToggle] = useCountryToggleMutation() const [localData, setLocalData] = useState([]); const [searchTerm, setSearchTerm] = useState(""); const debouncedSearchTerm = useDebounce(searchTerm, 500); const queryArgs = debouncedSearchTerm ? { page: currentPage, search: debouncedSearchTerm } : { page: currentPage }; const { data, refetch, isError, isFetching } = useGetCountryMasterQuery(queryArgs); console.log("Country Data", data?.data.data) useEffect(() => { if (data) { setLocalData(data?.data.data); } }, [data]); const handlePageChange = (page: number) => { setCurrentPage(page); }; const handleSearchChange = (value: string) => { setSearchTerm(value); setCurrentPage(1); }; const filteredData = localData?.filter((agency) => { const searchLower = searchTerm.toLowerCase(); const countryName = agency.en_name?.toLowerCase().includes(searchLower); const capitalName = agency.capital?.toLowerCase().includes(searchLower); return countryName || capitalName; }); const handleToggle = async (agencyId: number, currentStatus: string) => { const newStatus = currentStatus === '1' ? '0' : '1'; setLocalData((prevData) => prevData.map((agency) => agency.id === agencyId ? { ...agency, is_active: newStatus } : agency ) ); try { await countryToggle({ id: agencyId, is_active: newStatus }).unwrap(); refetch() } catch (error) { console.error("Error updating privacy policy:", error); setLocalData((prevData) => prevData.map((agency) => agency.id === agencyId ? { ...agency, is_active: currentStatus } : agency ) ); } } const managepost = filteredData?.flatMap((agency: CountryData, index: number) => ({ "Sr. No": (currentPage - 1) * (data?.data.per_page ?? 0) + index + 1, "Title": agency.en_name, "Action": ( handleToggle(agency.id, agency.is_active)} /> ), })) return ( Country {/* } color={"#000"} > */} { // setSearchTerm(value); // // setCurrentPage(1); // refetch() // }} onChange={handleSearchChange} /> {/* */} ) } export default Country