fix: offers table PDF button opens blob from NAS instead of print page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-03-27 10:42:29 +01:00
parent 6b9f1dee87
commit 7d29f40ab2

View File

@@ -223,24 +223,20 @@ export default function Offers() {
if (pdfLoading) return; if (pdfLoading) return;
setPdfLoading(quotation.id); setPdfLoading(quotation.id);
try { try {
const response = await apiFetch(`${API_BASE}/offers-pdf/${quotation.id}`); const response = await apiFetch(
`${API_BASE}/offers/${quotation.id}/file`,
);
if (response.status === 401) return; if (response.status === 401) return;
if (!response.ok) { if (!response.ok) {
alert.error("Nepodařilo se vygenerovat PDF"); alert.error("PDF soubor nenalezen — otevřete nabídku a uložte ji");
return; return;
} }
const html = await response.text(); const blob = await response.blob();
const w = window.open("", "_blank"); const url = URL.createObjectURL(blob);
if (w) { window.open(url, "_blank");
w.document.open(); setTimeout(() => URL.revokeObjectURL(url), 60000);
w.document.write(html);
w.document.close();
w.onload = () => w.print();
} else {
alert.error("Prohlížeč zablokoval vyskakovací okno");
}
} catch { } catch {
alert.error("Chyba při generování PDF"); alert.error("Chyba připojení");
} finally { } finally {
setPdfLoading(null); setPdfLoading(null);
} }
@@ -753,7 +749,7 @@ export default function Offers() {
<button <button
onClick={() => handlePdf(q)} onClick={() => handlePdf(q)}
className="admin-btn-icon" className="admin-btn-icon"
title="PDF" title="Zobrazit nabídku"
disabled={pdfLoading === q.id} disabled={pdfLoading === q.id}
> >
{pdfLoading === q.id ? ( {pdfLoading === q.id ? (