/* eslint-disable @typescript-eslint/no-explicit-any */ import { useAppSelector } from "@/Redux/Hooks"; import React, { useMemo } from "react"; import PlaceOrderForm from "./PlaceOrder/PlaceOrderForm"; import Link from "next/link"; import AddressList from "../pages/MyProfile/Containers/AddressList"; import PhoneEdit from "./PlaceOrder/PhoneEdit"; import { amountFormatWithCurrency, getFormattedAddress, } from "../../lib/Helper"; import { OrderFlowType, UserTypes } from "@/Constant/enums"; import Swal from "sweetalert2"; interface PlaceOrderModalProps { onClose: () => void; handleMakePayment: () => void; openPaymentConfirmModal: boolean; togglePaymentConfirm: () => void; } const PlaceOrderModal: React.FC = ({ onClose, handleMakePayment, }) => { const [addressChangeModal, setAddressChangeModal] = React.useState(false); const toggleAddressChange = () => setAddressChangeModal(!addressChangeModal); const [MobileChangeModal, setMobileChangeModal] = React.useState(false); const toggleMobileChange = () => setMobileChangeModal(!MobileChangeModal); const completeDetails: any = useAppSelector((state) => state.createOrder); const storedUser = localStorage.getItem("ALL_DATA"); const allData = storedUser ? JSON.parse(storedUser)?.data : null; // ✅ compute validity const isFormValid = useMemo(() => { const date = completeDetails?.step3?.makePayment?.date; const time = completeDetails?.step3?.makePayment?.time; return Boolean(date && time); }, [completeDetails]); // ✅ final handler with safeguard const onConfirmClick = () => { if (!isFormValid) { Swal.fire({ icon: "warning", title: "Oops...", text: !completeDetails?.step3?.makePayment?.date ? "Please select date" : "Please select time", confirmButtonText: "OK", }); return; } handleMakePayment(); }; return ( <> {addressChangeModal ? ( ) : MobileChangeModal ? ( ) : (

Schedule Pickup

{/*

No.of Orders ( {completeDetails?.step3?.draftList?.length || 0})

Change

*/} {completeDetails?.step3?.draftList?.[0]?.orderFlowType?.id === OrderFlowType.Return ? (
Order Type
{completeDetails?.step3?.draftList?.[0]?.orderFlowType?.id === OrderFlowType.Return ? 'Return ' : 'Forward '}
) : ''}
Service Type
{completeDetails?.step3?.draftList?.[0]?.service_type_details?.name}
No.of Orders
{completeDetails?.step3?.orderPreview ?.numberOfDraftOrders || 0}
No.of Packages
{completeDetails?.step3?.orderPreview?.numberOfPackages || 0} {/* (500kg) */}
{allData?.userType?.id === UserTypes.CorporateCodCustomer ? (
COD Amount
{" "} {amountFormatWithCurrency( completeDetails?.step3?.orderPreview?.totalCodAmount || 0 )}{" "}
) : ( "" )} {/*
Shipping Charge
{" "} {amountFormatWithCurrency( completeDetails?.step3?.orderPreview ?.calculatedTotalShippingCharge || 0 )}{" "}
*/} {/*
Discount
BHD 99.00
*/}

Shipping Charge

{" "} {amountFormatWithCurrency( completeDetails?.step3?.orderPreview ?.calculatedTotalShippingCharge || 0 )}

{completeDetails?.step3?.draftList?.[0]?.orderFlowType?.id === OrderFlowType.Return ? 'Delivery ' : 'Pickup '}Address
{/* */} {/* Box Icon */}{" "} {/* Flat-1545, Building-78745 Road-4578, Block-987 */} {getFormattedAddress()}
{completeDetails?.step3?.orderPreview?.senderAddressDetails ? ( <>
Sender Address
{" "} { completeDetails?.step3?.orderPreview ?.senderAddressDetails }
) : ( "" )} {/* */}
{completeDetails?.step3?.draftList?.[0]?.orderFlowType?.id === OrderFlowType.Return ? 'Delivery ' : 'Pickup '} Contact Number
{/* */} {" "} {allData?.phone}
{/* completeDetails?.step1?.serviceType */}
{/* ✅ inline error message */} {!isFormValid && (
{`Please select both date and time to continue`}
)}
{/* Confirm Order */}
)} ); }; export default PlaceOrderModal;