/* eslint-disable @typescript-eslint/no-explicit-any */ import Image from "next/image"; import Link from "next/link"; import React from "react"; import OrderCard from "./Containers/OrderCard"; import { useSearchParams, useRouter } from "next/navigation"; import OrderFilter from "../../Modal/Filters/OrderFilter"; import Modal from "../../Modal/Modal"; import { getDashboard } from "../../../Api/CustomerApi"; import HourGlassLoader from "../../Loader/Loader"; import CommonFilter from "../../Filters/CommonFilter"; interface FormData { serviceTypes: any; orderFlowType: any; orderId: string; customerOrderId: string; deliveryMobile: string; orderStatus: any; packageId: string; noOfPackages: string; packageWeight: string; packageValue: string; packageStatus: any; blockNumber: any; roadNumber: any; buildingNumber: any; flatNumber: string; } export default function NotificationsIndex() { const searchParams: any = useSearchParams(); const router = useRouter(); const defaultTab = searchParams.get("_") || "draft"; const [tab, setTab] = React.useState(defaultTab); const [filterModal, setFilterModal] = React.useState(false); React.useEffect(() => { setTab(defaultTab); }, [defaultTab]); const [filters, setFilters] = React.useState({}); // Function to check if any filters are applied const hasActiveFilters = () => { return !!( (filters.serviceTypes?.id && filters.serviceTypes?.id !== "") || (filters.orderFlowType?.id && filters.orderFlowType?.id !== "") || (filters.orderId && filters.orderId.trim() !== "") || (filters.customerOrderId && filters.customerOrderId.trim() !== "") || (filters.deliveryMobile && filters.deliveryMobile.trim() !== "") || (filters.orderStatus?.id && filters.orderStatus?.id !== "") || (filters.packageId && filters.packageId.trim() !== "") || (filters.noOfPackages && filters.noOfPackages.trim() !== "") || (filters.packageWeight && filters.packageWeight.trim() !== "") || (filters.packageValue && filters.packageValue.trim() !== "") || (filters.packageStatus?.id && filters.packageStatus?.id !== "") || (filters.blockNumber && filters.blockNumber !== null) || (filters.roadNumber && filters.roadNumber !== null) || (filters.buildingNumber && filters.buildingNumber !== null) || (filters.flatNumber && filters.flatNumber.trim() !== "") ); }; // Function to clear specific filter const clearFilter = (filterKey: string) => { setFilters((prev: any) => { const newFilters = { ...prev }; delete newFilters[filterKey]; return newFilters; }); }; // Function to clear all filters const clearAllFilters = () => { setFilters({}); }; const handleTab = (_tab: string) => { setTab(_tab || "draft"); router.push(`/my-orders?_=${_tab || "draft"}`); }; const toggleFilter = () => setFilterModal(!filterModal); const onSaveFilter = (filter: FormData) => { setFilters(filter); toggleFilter(); }; const [dashboard, setDashboard] = React.useState(null); const [draftCount, setDraftCount] = React.useState(0) const [isLoading, setIsLoading] = React.useState(true); React.useEffect(() => { const fetchDashboard = async () => { setIsLoading(true); try { const data = await getDashboard(); setDashboard(data); setDraftCount(data?.draft_orders || 0) } catch { setDashboard(null); } finally { setIsLoading(false); } }; fetchDashboard(); }, [tab]); return ( <> {isLoading && }
Orders {tab === "draft" ? ( ) : ( )}
{tab !== "draft" && hasActiveFilters() ? ( ) : ( "" )}
handleTab("draft")} data-active data-bs-toggle="collapse" data-bs-target="#tab-1" className={`rounded-0 font-600 ${ tab === "draft" ? "bg-purple no-click" : "" }`} > Draft ({ draftCount || 0}) handleTab("in_progress")} data-bs-toggle="collapse" data-bs-target="#tab-2" className={`rounded-0 font-600 ${ tab === "in_progress" ? "bg-purple no-click" : "" }`} > Inprogress ({dashboard?.in_progress_orders || 0}) handleTab("completed")} data-bs-toggle="collapse" data-bs-target="#tab-3" className={`rounded-0 font-600 ${ tab === "completed" ? "bg-purple no-click" : "" }`} > Completed ({dashboard?.delivered_orders || 0}) handleTab("cancel")} data-bs-toggle="collapse" data-bs-target="#tab-4" className={`rounded-0 font-600 ${ tab === "cancel" ? "bg-purple no-click" : "" }`} > Canceled ({dashboard?.cancelled_orders || 0})
{/*
*/}
{/*
Saved Orders
*/} {tab === "draft" && dashboard?.draft_orders > 0 ? (
) : null}
FMPP189153529
Pickup Scheduled
Les Snider