/* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; // import { usePopup } from "@/context/PopupContext"; import Image from "next/image"; import Link from "next/link"; import { downloadBulkStickerPrint } from "../../../Api/OrderApi"; import { useState } from "react"; import { toast } from "react-toastify"; import Modal from "../../Modal/Modal"; import StickerOrderFilter from "../../Modal/Filters/StickerOrderFilter"; import ScaleLoaderComponent from "../../Loader/ScaleLoader"; export default function Header({}) { // const { openPopup } = usePopup(); const [filterModal, setFilterModal] = useState(false); const [filters, setFilters] = useState({}); const [isDownloading, setIsDownloading] = useState(false); const toggleFilter = () => setFilterModal(!filterModal); const onSaveFilter = (appliedFilters: any) => { // { // "serviceTypes": { // "id": 1, // "name": "Express" // }, // "orderFlowType": { // "id": 1, // "name": "Forward" // }, // "orderId": "02152410000315", // "customerOrderId": "333333", // "deliveryMobile": "+97333333333", // "countryCode": "+973", // "orderStatus": [ // 2, // 3 // ], // "packageId": "STD24600110", // "noOfPackages": "10", // "packageWeight": "1", // "packageValue": "21", // "packageStatus": null, // "blockNumber": null, // "roadNumber": null, // "buildingNumber": null, // "flatNumber": "", // "printSize": "80*55" // } setFilters(appliedFilters); setFilterModal(false); handleDownloadStickers(appliedFilters); // download after applying filters }; const handleDownloadStickers = async (appliedFilters: any = {}) => { try { setIsDownloading(true); const payloadFilter = { filter_by_service_type: appliedFilters?.serviceTypes?.id, filter_by_order_flow_type: appliedFilters?.orderFlowType?.id, filter_by_generated_order_id: appliedFilters?.orderId, fitler_by_customer_input_order_id: appliedFilters?.customerOrderId, filter_by_destination_mobile_number: appliedFilters?.deliveryMobile, filter_by_status: appliedFilters?.orderStatus, filter_by_generated_order_package_id: appliedFilters?.packageId, filter_by_total_no_of_packages: appliedFilters?.noOfPackages, filter_by_weight: appliedFilters?.packageWeight, filter_by_customer_input_package_value: appliedFilters?.packageValue, filter_by_package_status: appliedFilters?.packageStatus, size: appliedFilters?.printSize, } const filteredPayload = Object.entries(payloadFilter).reduce((acc, [key, value]) => { if ( value !== undefined && value !== null && value !== "" && !(Array.isArray(value) && value.length === 0) && value !== 0 ) { acc[key] = value; } return acc; }, {} as Record); // Call API with filters const response = await downloadBulkStickerPrint(appliedFilters?.printSize || "6*4", filteredPayload); // ✅ Check for failure if (response === null) { toast.error( response?.message || "No packages found for sticker generation" || "Failed to download stickers. Please try again." ); return; // ⛔ Stop here, don’t try to download } const blob = new Blob([response], { type: "application/pdf" }); const url = window.URL.createObjectURL(blob); const link = document.createElement("a"); link.href = url; link.setAttribute("download", `bulk-stickers.pdf`); document.body.appendChild(link); link.click(); link.parentNode?.removeChild(link); setFilters({}) toast.success("Stickers downloaded successfully"); } catch (error: any) { console.error("Error downloading stickers:", error); toast.error(error?.response?.data?.message || "Failed to download stickers. Please try again."); } finally { setFilters({}) setIsDownloading(false); } }; return ( <> {isDownloading && } {" "}
Company Logo{" "} {/* */} { e.preventDefault(); toggleFilter(); // open filter modal instead of downloading directly }} >