/* eslint-disable @typescript-eslint/no-explicit-any */ import React, { useEffect, useState } from "react"; import OrderCard from "./Step3/OrderCard"; import CreateOrderFooter from "./CreateOrderFooter"; import { getOrders } from "../../../../Api/OrderApi"; import HourGlassLoader from "../../../Loader/Loader"; import { useAppSelector } from "@/Redux/Hooks"; import { saveStepData } from "@/Redux/Reducers/CreateOrderSlice"; import { useDispatch } from "react-redux"; import { getFormattedAddress, handleFuturePickup } from "../../../../lib/Helper"; import { OrderFlowType } from "@/Constant/enums"; const Step3: React.FC<{ onSave: (data: any) => void; step: number; setStep: React.Dispatch>; defaultOrderDetails: any; }> = ({ step, setStep }) => { const dispatch = useDispatch(); const completeOrder: any = useAppSelector((state) => state.createOrder); const [orders, setOrders] = useState([]); const [isLoading, setIsLoading] = useState(true); const fetchOrders = async () => { setIsLoading(true); try { const orderList = await getOrders(); const updatedCompleteOrder: any = { ...completeOrder?.step3, draftList: orderList || [], }; dispatch(saveStepData({ step: "step3", data: updatedCompleteOrder })); setOrders(orderList); } catch (error) { console.error("Failed to fetch orders:", error); } finally { setIsLoading(false); } }; useEffect(() => { fetchOrders(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const handleFuturePickupFlag = async (orderId = 0, orderData: undefined) => { setIsLoading(true); try { const isMarked = await handleFuturePickup(orderId, orderData); if (isMarked) { await fetchOrders(); } } catch (error) { console.error("Error in future pickup:", error); } finally { setIsLoading(false); } }; const handleFuturePickupConfirm = async () => { const _id = orders?.[0]?.id ?? null; if(_id) await handleFuturePickupFlag(_id, orders?.[0]) } return ( <> {isLoading && }
{isLoading ? "Loading orders..." : `No. of Orders ${orders.length}`}

No. of future pickup: {orders.filter(order => order.isFuturePickup).length}

{!isLoading && orders.map((order: any, idx) => ( ))}
{}} handleFuturePickupConfirm={handleFuturePickupConfirm} /> ); }; export default Step3;