import { enqueueSnackbar } from 'notistack'; import { DeleteFilled, EditOutlined } from '@ant-design/icons'; import { useState, useEffect, Fragment, useRef } from 'react'; import { Empty } from 'antd'; import dayjs from 'dayjs'; var utc = require('dayjs/plugin/utc'); dayjs.extend(utc); import axios from 'axios'; import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; import { useTheme } from '@mui/material/styles'; import { PiMapPinLineDuotone } from 'react-icons/pi'; import { MdOutlineDateRange } from 'react-icons/md'; import { MdOutlineDeliveryDining } from 'react-icons/md'; import { useQuery, useMutation, useInfiniteQuery } from '@tanstack/react-query'; import { Avatar, Box, Button, Grid, Tabs, Tab, IconButton, Stack, Chip, Typography, Table, TableCell, TableBody, TableHead, Collapse, Dialog, TableRow, DialogContent, DialogTitle, Tooltip, DialogActions, Popper, ClickAwayListener, Checkbox, Autocomplete, TextField, FormLabel, TablePagination, TableContainer, Skeleton, useMediaQuery, Divider, CircularProgress, Backdrop, MenuItem, Menu } from '@mui/material'; import MainCard from 'components/MainCard'; import { MoreOutlined, CloseOutlined // NotificationOutlined } from '@ant-design/icons'; import { PopupTransition } from 'components/@extended/Transitions'; import { addDays, addMonths, addWeeks, // addYears, endOfMonth, endOfWeek, // endOfYear, startOfMonth, startOfWeek // startOfYear, } from 'date-fns'; import { DateRangePicker } from 'mui-daterange-picker'; import * as React from 'react'; import Loader from 'components/Loader'; import { KeyboardArrowDownOutlined, KeyboardArrowUpOutlined } from '@mui/icons-material'; import CircularLoader from 'components/CircularLoader'; import { cancelDeliveryAPI, changeRiderAPI, fetchCountAPI, fetchDeliveries, fetchPercentageAPI, fetchRidersList, notifyRider, updateDeliveryAPI, getorderdetails, gettenantlocations, getTenants } from 'pages/api/api'; import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; import TitleCard from 'components/nearle_components/TitleCard'; import { OpenToast } from 'components/third-party/OpenToast'; import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; // ================================================= || deliveries (initial point)|| ================================================= const Deliveries = () => { const userid = localStorage.getItem('userid'); const theme = useTheme(); const loadMoreRef = useRef(); const containerRef = useRef(); const [deliverylist, setDeliverylist] = useState([]); const [dialogopen, setDialogopen] = useState(false); const [locaName, setLocoName] = useState('All'); const [appId, setAppId] = useState(0); const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); const [tabstatus, setTabstatus] = useState('Pending'); const [tabvalue, setTabvalue] = useState(0); const [open, setOpen] = useState(false); const [datestatus, setDatestatus] = useState('Today'); const [kms, setKms] = useState(''); const [cumulativekms, setCumulativeKms] = useState(); const [deliveryamount, setDeliveryamount] = useState(); const [notes, setNotes] = useState(''); const [currentorder, setCurrentorder] = useState({}); const [deliverylat, setDeliverylat] = useState(''); const [deliverylong, setDeliverylong] = useState(''); const [currentStatus, setCurrentStatus] = useState('pending'); const locationRef = useRef(null); const tenantRef = useRef(null); const [page, setPage] = React.useState(0); const [rowsPerPage, setRowsPerPage] = React.useState(50); const [totalCount, setTotalCount] = React.useState(); const [productCollapse, setProductCollapse] = useState(null); const [orderHeaderid, setOrderHeaderId] = useState(null); const [searchword, setSearchword] = useState(''); const [debouncedSearch, setDebouncedSearch] = useState(''); const [menuAnchorEl, setMenuAnchorEl] = React.useState(null); const [selectedRow, setSelectedRow] = useState(null); const [loading1, setLoading1] = useState(false); const [anchorEl, setAnchorEl] = React.useState(null); const [open2, setOpen2] = useState(''); const [cancelDeliveryOpen, setCancelDeliveryOpen] = useState(false); const [changeDialogOpen, setChangeDialogOpen] = useState(false); const [cancelFeed, setCancelFeed] = useState(''); const [selectedRider, setSelectedRider] = useState(null); const [tenantid, setTenantid] = useState(0); const [locationid, setLocationid] = useState(0); const [tenantValue, setTenantValue] = useState(null); const [locationValue, setLocationValue] = useState(null); const [riderid, setRiderid] = useState(0); const roleid = localStorage.getItem('roleid'); useEffect(() => { setTenantid(0); setTenantValue(null); setLocationid(0); setLocationValue(null); }, [appId]); // to clear the location autocomplete useEffect(() => { setLocationid(0); setLocationValue(null); }, [tenantid]); const menuOpen = Boolean(menuAnchorEl); const handleMenuOpen = (event, row) => { setSelectedRow(row); console.log('selectedRow', row); setMenuAnchorEl(event.currentTarget); }; const handleMenuClose = () => { setMenuAnchorEl(null); }; // =========================================== || cancelDelivery || =========================================== const { mutate: cancelDelivery } = useMutation({ mutationFn: ({ selectedRow, cancelFeed }) => cancelDeliveryAPI(selectedRow, cancelFeed), onSuccess: () => { opentoast('Delivery Cancelled Successfully', 'success'); setCancelDeliveryOpen(false); fetchCountRefetch(); // Refresh count data fetchDeliveriesRefetch(); // Refresh deliveries }, onError: (error) => { opentoast(error.message, 'error'); } }); // ==============================|| cancelridernotification ||============================== // const cancelridernotification = async () => { console.log('cancelridernotification', selectedRow); try { const response = await axios.post(`${process.env.REACT_APP_URL}/utils/notifyuser`, { token: selectedRow.userfcmtoken, notification: { title: 'NearleXpress', body: `${selectedRow.orderid} have been Cancelled`, sound: 'ring', image: '' }, data: { type: 'cancel' } }); return response.data; } catch (err) { opentoast(err.message, 'error', 2000); console.log(err); } }; // ==============================|| getTenants ||============================== // const { data: tenantlist, isLoading: fetchtenantsIsLoading, isError: fetchtenantsIsError, error: fetchtenantsError } = useQuery({ queryKey: ['tenantlist', appId], queryFn: () => getTenants(appId), // Ensure appId is passed enabled: appId !== 0 // Ensures query runs only when appId is valid }); // ==============================|| gettenantlocations ||============================== // const { data: locationlist, isLoading: fetchlocationsIsLoading, isError: fetchlocationsIsError, error: fetchlocationsError } = useQuery({ queryKey: ['gettenantlocations', tenantid], queryFn: () => gettenantlocations(tenantid), // Ensure appId is passed enabled: tenantid !== 0 // Ensures query runs only when appId is valid }); // =========================================== || notifyrider || =========================================== const notifyRiderMutation = useMutation({ mutationFn: notifyRider, // Using the separate function onSuccess: () => { enqueueSnackbar('Notification sent Successfully', { variant: 'success', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }); }, onError: (error) => { enqueueSnackbar(error.message, { variant: 'error', anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }); } }); // =========================================== || changerider || =========================================== const changeRiderMutation = useMutation({ mutationFn: ({ selectedRider, selectedRow }) => changeRiderAPI(selectedRider, selectedRow), onSuccess: (res) => { setLoading1(false); setChangeDialogOpen(false); if (res.data.message === 'Success') { opentoast('Rider Changed Successfully', 'success'); } fetchCountRefetch(); // Refresh count data fetchDeliveriesRefetch(); // Refresh deliveries notifyRiderMutation.mutate(selectedRider.userfcmtoken); }, onError: (err) => { console.log(err); opentoast(err.message, 'error'); setLoading1(false); } }); /* ============================================= || opentoast || ============================================= */ const opentoast = (message, variant) => { enqueueSnackbar(message, { variant, anchorOrigin: { vertical: 'top', horizontal: 'right' }, autoHideDuration: 2000 }); }; // ==============================|| getorderdetails ||============================== // const { data: orderdetails } = useQuery({ queryKey: ['orderdetails', orderHeaderid], queryFn: () => getorderdetails(orderHeaderid), enabled: !!orderHeaderid // ✅ prevent initial fetch when undefined }); const dialogclose = () => { setDialogopen(false); }; const handleChangetab = (e, i) => { setPage(0); setTabvalue(i); setRowsPerPage(50); if (i === 0) { setTabstatus('Pending'); setCurrentStatus('pending'); setTotalCount(countData?.uncoveredLength); } if (i === 1) { setTabstatus('Assigned'); setCurrentStatus('accepted'); setTotalCount(countData?.assignedLength); } if (i === 2) { setTabstatus('Arrived'); setCurrentStatus('arrived'); setTotalCount(countData?.arrivedLength); } if (i === 3) { setTabstatus('Picked'); setCurrentStatus('picked'); setTotalCount(countData?.pickedLength); } if (i === 4) { setTabstatus('Active'); setCurrentStatus('active'); setTotalCount(countData?.activeLength); } if (i === 5) { setTabstatus('Skipped'); setCurrentStatus('skipped'); setTotalCount(countData?.skippedLength); } if (i === 6) { setTabstatus('Delivered'); setCurrentStatus('delivered'); setTotalCount(countData?.coveredLength); } if (i === 7) { setTabstatus('Cancelled'); setCurrentStatus('cancelled'); setTotalCount(countData?.cancelLength); } console.log(i); setSearchword(''); }; const okclicked = () => { setOpen(false); }; /* ============================================= || fetchDeliveries | ============================================= */ const { data: deliveriesData, isLoading: fetchDeliveriesIsLoading, isError: fetchDeliveriesIsError, error: fetchDeliveriesError, fetchNextPage, hasNextPage, isFetchingNextPage, refetch: fetchDeliveriesRefetch } = useInfiniteQuery({ queryKey: [ 'fetchdeliveries', appId, userid, currentStatus, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid ], queryFn: fetchDeliveries, getNextPageParam: (lastPage) => lastPage.nextPage ?? undefined }); const rows = deliveriesData?.pages.flatMap((page) => page.rows) || []; useEffect(() => { if (!hasNextPage) return; const observer = new IntersectionObserver( (entries) => { if (entries[0].isIntersecting) { fetchNextPage(); } }, { root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer rootMargin: '0px', threshold: 1.0 } ); if (loadMoreRef.current) observer.observe(loadMoreRef.current); return () => { if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); }; }, [hasNextPage, fetchNextPage]); const handleScroll = (event) => { const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; if (scrollTop + clientHeight >= scrollHeight - 50) { if (hasNextPage && !isFetchingNextPage) { fetchNextPage(); } } }; /* ============================================= || fetchPercentageAPI | ============================================= */ const { data: percentageData, isLoading: fetchPercentageIsLoading, isError: fetchPercentageIsError, error: fetchPercentageError } = useQuery({ queryKey: ['fetchpercentageaPI', appId], queryFn: () => fetchPercentageAPI(appId) }); useEffect(() => { if (percentageData) { console.log('percentageData', percentageData); } }, [percentageData]); /* ============================================= || fetchcount | ============================================= */ const { data: countData = {}, // Default to empty object isLoading: fetchCountIsLoading, isError: fetchCountIsError, error: fetchCountError, refetch: fetchCountRefetch } = useQuery({ queryKey: ['fetchCountData', appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid, tabstatus], queryFn: () => fetchCountAPI(appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid) }); useEffect(() => { console.log('countData', countData); if (tabvalue === 0 && countData) { setTotalCount(countData.uncoveredLength); } }, [countData]); // ==============================|| fetchRidersList ||============================== // const { data: ridersList = [], isLoading: riderListIsLoading, isError: ridersListIsError, error: ridersListError } = useQuery({ queryKey: ['ridersList', appId], // Unique key for caching & re-fetching queryFn: fetchRidersList, enabled: Boolean(appId), onError: (err) => { OpenToast(err.message, 'error', 2000); } }); /* ============================================= || updatedelivery | ============================================= */ const updateDeliveryMutation = useMutation({ mutationFn: (orderData) => updateDeliveryAPI(orderData), onSuccess: (res) => { console.log(res); if (res.data.status) { opentoast('Updated Successfully', 'success'); setDeliveryamount(''); setNotes(''); setDialogopen(false); fetchDeliveriesRefetch(); fetchCountRefetch(); } }, onError: (err) => { console.log(err); opentoast(err.message, 'success'); } }); const errorMessage = fetchDeliveriesIsError ? `Error fetching percentages: ${fetchDeliveriesError?.message}` : fetchPercentageIsError ? `Error fetching percentages: ${fetchPercentageError?.message}` : fetchCountIsError ? `Error fetching percentages: ${fetchCountError?.message}` : ridersListIsError ? `Error fetching percentages: ${ridersListError?.message}` : fetchtenantsIsError ? `Error tenant list: ${fetchtenantsError?.message}` : fetchlocationsIsError ? `Error location list: ${fetchlocationsError?.message}` : null; if (errorMessage) { console.log('errorMessage', errorMessage); OpenToast(errorMessage, 'error', 2000); return null; // or return <> if inside a component } return ( <> {(fetchCountIsLoading || fetchPercentageIsLoading || fetchDeliveriesIsLoading || fetchtenantsIsLoading || fetchlocationsIsLoading || riderListIsLoading) && ( <> {/* */} )} { theme.zIndex.drawer + 1 }} open={ fetchCountIsLoading || fetchPercentageIsLoading || fetchDeliveriesIsLoading || fetchtenantsIsLoading || fetchlocationsIsLoading || riderListIsLoading } > {/* */} } {/* ============================================= || TitleCard | ============================================= */} {/* ============================================= || hoverCard | ============================================= */} {[ { label: 'Created orders', value: percentageData?.uncoveredOrders, percentage: percentageData?.percentage1, color: theme.palette.info.main }, { label: 'Pending orders', value: percentageData?.assignedOrders, percentage: percentageData?.percentage2, color: theme.palette.warning.main }, { label: 'Delivered orders', value: percentageData?.pickedOrders, percentage: percentageData?.percentage3, color: theme.palette.success.main }, { label: 'Cancelled Orders', value: percentageData?.coveredOrders, percentage: percentageData?.percentage4, color: theme.palette.error.main } ].map((item, index) => ( : item.value} percentage={item.percentage?.toString()} color={item.color} /> ))} {/* ============================================= || orderFilter | ============================================= */} {startdate && enddate ? ( } label={`Deliveries-${datestatus}`} color="error" variant="combined" /> } label={ {dayjs(startdate).format('DD/MM/YYYY')} - {dayjs(enddate).format('DD/MM/YYYY')} } onClick={() => setOpen(true)} variant="combined" color="warning" sx={{ maxWidth: '100%', cursor: 'pointer' }} // to avoid overflow /> } label={locaName} color="info" variant="combined" sx={{ maxWidth: '100%' }} /> ) : ( )} { if (!appId) { event.preventDefault(); OpenToast('Please select a your location first!', 'warning', 3000); setTimeout(() => { locationRef.current?.focus(); }, 0); } }} onChange={(e, val, reason) => { if (reason === 'clear') { setTenantid(0); setTenantValue(null); setLocationid(0); setLocationValue(null); } else { setTenantid(val?.tenantid || 0); setTenantValue(val); setLocationid(0); setLocationValue(null); } }} renderInput={(params) => } /> `${option.locationname} (${option.suburb})` || ''} value={locationValue} sx={{ minWidth: 200, flex: 1 }} onOpen={(event) => { if (!appId && !tenantid) { event.preventDefault(); OpenToast('Please select a your Location and Tenant first!', 'warning', 3000); setTimeout(() => { locationRef.current?.focus(); }, 0); } else if (!tenantid) { event.preventDefault(); OpenToast('Please select a your Tenant first!', 'warning', 3000); setTimeout(() => { tenantRef.current?.focus(); }, 0); } }} onChange={(e, val, reason) => { if (reason === 'clear') { setLocationid(0); setLocationValue(null); } else { setLocationid(val.locationid || 0); setLocationValue(val); } }} renderInput={(params) => } /> `${option.firstname} ${option.lastname} (${option.contactno})`} renderInput={(params) => } onChange={(e, value, reason) => { if (reason === 'clear') { setRiderid(0); } else { setRiderid(value.userid); console.log('selected rider', value); } }} onOpen={(event) => { if (!appId) { event.preventDefault(); OpenToast('Please select a your location first!', 'warning', 3000); setTimeout(() => { locationRef.current?.focus(); }, 0); } }} /> {/* ============================================= || Tabs || ============================================= */} } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> } iconPosition="end" /> {/* ============================================= || searchOutlined | ============================================= */} {/* ============================================= || MainCard || ============================================= */} {tabstatus == 'Created' && ( 0 && deliverylist.length != rows.length} onChange={(e) => { if (e.target.checked) { setDeliverylist([...rows]); } else { setDeliverylist([]); } }} checked={deliverylist.length == rows.length} /> )} S.No Tenant Order Location{' '} Pickup Drop Rider Est. Delivery Time Transit Kms Amount Notes Steps Qty COD {tabstatus !== 'Cancelled' && tabstatus !== 'Delivered' && ( Action )} {(loading1 || fetchDeliveriesIsLoading) && } {rows.length == 0 && !loading1 && ( <> {/* */} )} {rows.map((row, index) => { return ( <> res1.orderheaderid == row.orderheaderid) ? '#e1bee7' : '', '&:hover': { backgroundColor: deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid) ? '#e1bee7 !important' : '' } }} > {tabstatus == 'Created' && ( { if (e.target.checked) { let arr = deliverylist; arr.push({ ...row, sno: deliverylist.length + 1 }); setDeliverylist([...arr]); } else { let res = deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid); if (res) { let arr = deliverylist; let res = deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid); arr.splice(res.sno - 1, 1); arr.map((val, i) => { val.sno = i + 1; }); setDeliverylist([...arr]); } } console.log('list', deliverylist); }} checked={deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid)} /> )} {/* {row.sno} */} {page * rowsPerPage + index + 1} {/* Tenants */} {row.tenantname} {row.tenantsuburb} {row.applocation} {/* order details */} {`${row.locationname}-(${row.locationsuburb})`} {row.orderid} {dayjs(row.orderdate).utc().format('DD/MM/YYYY')} {dayjs(row.orderdate).utc().format('hh:mm A')} - {row.deliveryid} {dayjs(row.deliverydate).utc().format('DD/MM/YYYY')} {dayjs(row.deliverydate).utc().format('hh:mm A')} {/* pickup */} {row.pickupcustomer} {row.pickupcontactno} {row.pickuplocation || row.Pickupaddress.slice(0, 12) + '...'} {/* drop */} {row.deliverycustomer} {row.deliverycontactno} {`${row.deliverylocation || row.deliveryaddress.slice(0, 12) + '...'}`} {/* rider */} {row.ridername} {`ID: ${row.userid}`} {row.ridercontact} {/* Estimated Delivery Time */} {row.expecteddeliverytime ? dayjs(row.expecteddeliverytime).format('hh:mm A') : 'N/A'} {/* Transit Minutes */} {row.transitminutes || 0} min {/* kms */} {/* amount */} {/* notes */} {row.notes} {/* step */} {row.step ? ( ) : ( )} {/* qty */} {row.Quantity ? ( {row.Quantity} ) : ( {' '} {row.Quantity} )} {/* {cash} */} {row.collectionamt ? ( {' '} {`₹ ${row.collectionamt.toFixed(2)}`}{' '} ) : ( {' '} {`₹ ${row.collectionamt.toFixed(2)}`}{' '} )} {/* Action */} {tabstatus !== 'Cancelled' && tabstatus !== 'Delivered' && ( {row.deliverytype == 'C' && ( { if (productCollapse?.orderid === row.orderid) { setProductCollapse(null); // Collapse if already open setOrderHeaderId(null); } else { setProductCollapse(row); // Open if different setOrderHeaderId(row.orderheaderid); // Open if different } }} > {productCollapse?.orderid === row.orderid ? : } )} handleMenuOpen(e, row)} > {selectedRow?.orderstatus !== 'delivered' && ( { notifyRiderMutation.mutate(selectedRow.userfcmtoken); handleMenuClose(); }} > Notify Rider )} {['pending', 'accepted', 'arrived'].includes(selectedRow?.orderstatus) && ( { if (!appId) { opentoast('Please select a location first!', 'warning'); locationRef.current?.focus(); return; } setChangeDialogOpen(true); handleMenuClose(); }} > Change Rider )} {(roleid == 1 || roleid == 2) && ( { setKms(selectedRow.kms); setCumulativeKms(selectedRow.cumulativekms); setDeliverylat(selectedRow.droplat); setDeliverylong(selectedRow.droplon); setNotes(selectedRow.notes); setDeliveryamount(selectedRow.deliveryamount); setCurrentorder(selectedRow); setDialogopen(true); handleMenuClose(); }} > Update Delivery Status )} {selectedRow?.orderstatus !== 'cancelled' && selectedRow?.orderstatus !== 'delivered' && ( { setCancelDeliveryOpen(true); handleMenuClose(); }} > Cancel Delivery )} )} {productCollapse?.orderid === row?.orderid && (
S.No Product Name Description Quantity Cost Price Tax Amount {orderdetails?.details?.map((product, index) => ( {index + 1} {product?.productname} {product?.productname || 'Unnamed'} {product?.productdescription || '-'} {product?.orderqty || 0} ₹ {product?.price || 0} ₹ {(product?.productsumprice ?? 0).toFixed(2)} ₹ {(product?.taxamount ?? 0).toFixed(2)} ₹ {(product?.productsumprice + product?.taxamount).toFixed(2) || 0} ))} Total Amount : ₹ {orderdetails?.pricedetails?.orderamount.toFixed(2)}
)} ); })} {rows?.length != 0 && (
{isFetchingNextPage ? : hasNextPage ? : 'No More Deliveries'}
)}
{/* =============================== || cancel dialog || =============================== */} setCancelDeliveryOpen(false)} maxWidth="xs"> Are you sure you want to cancel this delivery? { setCancelFeed(e.target.value); }} /> {/* =============================== || change dialog || =============================== */} setChangeDialogOpen(false)} maxWidth="sm" fullWidth TransitionComponent={PopupTransition} > Change Rider `${option.firstname} ${option.lastname} | ${option.contactno}`} renderInput={(params) => } onChange={(e, value) => { setSelectedRider(value); console.log('selected rider', value); }} /> {/* =============================== || Date filter Dialog || =============================== */} Select Filter Options setOpen(!open)} id="daterange1" onChange={(range) => { if (range.label === 'All') { setStartdate(''); setEnddate(''); setOpen(false); } else { setStartdate(dayjs(range.startDate).format('YYYY-MM-DD')); setEnddate(dayjs(range.endDate).format('YYYY-MM-DD')); if (range.label) { setDatestatus(range.label); } else { setDatestatus(''); } } console.log(range); }} definedRanges={[ { label: 'Today', startDate: new Date(), endDate: new Date() }, { label: 'Yesterday', startDate: addDays(new Date(), -1), endDate: addDays(new Date(), -1) }, { label: 'Tomorrow', startDate: addDays(new Date(), +1), endDate: addDays(new Date(), +1) }, { label: 'This Week', startDate: startOfWeek(new Date()), endDate: endOfWeek(new Date()) }, { label: 'Last Week', startDate: startOfWeek(addWeeks(new Date(), -1)), endDate: endOfWeek(addWeeks(new Date(), -1)) }, { label: 'Last 7 Days', startDate: addWeeks(new Date(), -1), endDate: new Date() }, { label: 'This Month', startDate: startOfMonth(new Date()), endDate: endOfMonth(new Date()) }, { label: 'Last Month', startDate: startOfMonth(addMonths(new Date(), -1)), endDate: endOfMonth(addMonths(new Date(), -1)) } // { // label: 'All', // startDate: new Date(), // endDate: addDays(new Date(), -1), // }, ]} /> {/* =============================== || Update Delivery Dialog || =============================== */} Update Delivery Status Kms { setKms(e.target.value); console.log(e); }} /> Actual Kms setCumulativeKms(+e.target.value)} fullWidth /> Delivery lat { setDeliverylat(e.target.value); }} /> Delivery Long { setDeliverylong(e.target.value); }} fullWidth /> Amount setDeliveryamount(+e.target.value)} /> Notes setNotes(e.target.value)} /> {' '} ); }; export default Deliveries;