Remove debug logging and simplify error handling

This commit is contained in:
2025-11-24 21:47:47 -05:00
parent 843f9ceed0
commit fd6b490de1

View File

@@ -12,14 +12,6 @@ import React from "react";
// Fallback download function for better browser compatibility // Fallback download function for better browser compatibility
function downloadBlob(blob: Blob, filename: string): void { function downloadBlob(blob: Blob, filename: string): void {
// Enhanced debugging for download process
console.log("Download Debug Info:", {
blobSize: blob.size,
blobType: blob.type,
filename: filename,
userAgent: navigator.userAgent,
});
try { try {
// Validate blob before download // Validate blob before download
if (!blob || blob.size === 0) { if (!blob || blob.size === 0) {
@@ -28,38 +20,25 @@ function downloadBlob(blob: Blob, filename: string): void {
// First try using file-saver // First try using file-saver
saveAs(blob, filename); saveAs(blob, filename);
console.log("PDF download initiated successfully via file-saver");
} catch (error) { } catch (error) {
console.warn("file-saver failed, using fallback method:", error); // Fallback to manual download
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
link.download = filename;
link.style.display = "none";
try { // Add MIME type hint to link
// Fallback to manual download if (blob.type) {
const url = URL.createObjectURL(blob); link.type = blob.type;
const link = document.createElement("a");
link.href = url;
link.download = filename;
link.style.display = "none";
// Add MIME type hint to link
if (blob.type) {
link.type = blob.type;
}
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
console.log("PDF download initiated successfully via fallback method");
// Clean up the object URL
setTimeout(() => {
URL.revokeObjectURL(url);
console.log("Object URL cleaned up");
}, 1000);
} catch (fallbackError) {
console.error("Both download methods failed:", fallbackError);
throw new Error("Unable to download PDF file");
} }
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// Clean up the object URL
setTimeout(() => URL.revokeObjectURL(url), 1000);
} }
} }
@@ -1106,20 +1085,6 @@ export async function generateInvoicePDF(invoice: InvoiceData): Promise<void> {
// Create a new blob with explicit MIME type to ensure proper PDF handling // Create a new blob with explicit MIME type to ensure proper PDF handling
const blob = new Blob([originalBlob], { type: "application/pdf" }); const blob = new Blob([originalBlob], { type: "application/pdf" });
// Enhanced debugging
console.log("PDF Generation Debug Info:", {
originalBlobSize: originalBlob.size,
originalBlobType: originalBlob.type,
newBlobSize: blob.size,
newBlobType: blob.type,
invoiceNumber: invoice.invoiceNumber,
});
// Validate MIME type is set correctly
if (blob.type !== "application/pdf") {
console.warn("MIME type not set correctly, forcing application/pdf");
}
// Create filename with timestamp for uniqueness // Create filename with timestamp for uniqueness
const timestamp = new Date().toISOString().slice(0, 10); const timestamp = new Date().toISOString().slice(0, 10);
const filename = `Invoice_${invoice.invoiceNumber}_${timestamp}.pdf`; const filename = `Invoice_${invoice.invoiceNumber}_${timestamp}.pdf`;