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:
@@ -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 ? (
|
||||||
|
|||||||
Reference in New Issue
Block a user