import { useEffect, useState } from 'react' import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import queryKeys from '../../services/queryKeys' import BreadcrumbCom from '../breadcrumb/BreadcrumbCom' import TablePaginatedWrapper from '../tableWrapper/TablePaginatedWrapper' import Icons from '../Icons' import { getProductsTemplate, setProductsTemplate } from '../../services/siteServices' // import getDateTimeFromDateString from '../../helpers/getDateTimeFromDateString' export default function ProductTemplates() { const queryClient = useQueryClient() const [selected, setSelected] = useState('') const [page, setPage] = useState(1) const [filter, setFilter] = useState({type: '', id: ''}) const [willFilter, setWillFilter] = useState(false) const handleFilter = ({target:{name, value}}) => { setFilter(prev => ({...prev, [name]:value})) } const handleFilterByParams = () => { if(filter.type && !filter.id){ return }else if(!filter.type){ setPage(1) setWillFilter(prev => !prev) setFilter({type: '', id: ''}) }else{ setPage(1) setWillFilter(prev => !prev) } } const {data, isFetching, isError, error} = useQuery({ queryKey: [...queryKeys.products_template, page, willFilter], queryFn: () => { const filterData = filter?.type ? {[filter?.type]: filter.id} : {} const reqData = { page, ...filterData } return getProductsTemplate(reqData) }, staleTime: 0 //0 mins }) // const productsTemData = data?.data?.templates // PRODUCTS TEMPLATE LIST // const pagination = data?.data?.pagination // console.log('DATA', data?.data) const [productsTemData, setProductsTemData] = useState([]) const [pagination, setPagination] = useState({}) useEffect(()=>{ if(data){ setProductsTemData(data?.data?.templates) setPagination(data?.data?.pagination) } },[data]) const statusChange = useMutation({ mutationFn: (fields) => { return setProductsTemplate(fields) }, onError: (error) => { }, onSuccess: (res) => { queryClient.refetchQueries({ queryKey: [...queryKeys.country_list], // type: 'active', // exact: true, }) }, onSettled: () => { setSelected('') } }) //FUNCTION TO CHANGE STATUS OR SIGNUP const handleStatusChange = (event, details) => { setSelected(event.target.id) const name = event.target.name const val = name.toUpperCase() === 'STATUS' ? details.status : details.signup const reqData = { 'val_type': name.toUpperCase(), 'country_uid': details?.country_uid, 'code': details?.code, 'val': val === 0 ? 1 : 0 } statusChange.mutate(reqData) setTimeout(()=>{ setSelected('') const NewData = productsTemData.map(item => { // remove later if(item.product_id === event.target.id){ return ({...item, status: !item.status}) }else{ return item } }) setProductsTemData(NewData) },3000) // remove later }; return (
{ isError ?

{error?.message}

: <> {/* filter section */}
{/* end of filter section */} {({ data }) => ( <> {(data && data.length > 0) ? data?.map((item, index) => ( )) : }
Product ID Provision Name Status
{item?.product_id}
{item?.provision_name}
<> {selected === item?.product_id ?
Loading...
: handleStatusChange(e, item)} type="checkbox" checked={item?.status} name="status" id={item?.product_id} /> }
No Record Found
)}
}
) }