From e97dd392c0835337a775d50e6b7e2fc49454e295 Mon Sep 17 00:00:00 2001 From: smanylov Date: Tue, 5 May 2026 16:01:08 +0700 Subject: [PATCH] fix download and download name for tracking document --- src/app/[locale]/watch-doc/page.tsx | 3 ++- src/app/components/PdfViewer.tsx | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/app/[locale]/watch-doc/page.tsx b/src/app/[locale]/watch-doc/page.tsx index adcf797..5b10258 100644 --- a/src/app/[locale]/watch-doc/page.tsx +++ b/src/app/[locale]/watch-doc/page.tsx @@ -57,7 +57,7 @@ export default async function Page({ searchParams }: PageProps) { error = 'Не удалось загрузить информацию о документе'; } - const documentTitle = title || 'FileName'; + const documentTitle = response?.fileName || 'FileName'; if (error || !response) { return ( @@ -132,6 +132,7 @@ export default async function Page({ searchParams }: PageProps) { diff --git a/src/app/components/PdfViewer.tsx b/src/app/components/PdfViewer.tsx index c32d4ba..22a40e1 100644 --- a/src/app/components/PdfViewer.tsx +++ b/src/app/components/PdfViewer.tsx @@ -2,13 +2,15 @@ import { useEffect, useRef, useState } from 'react'; import { usePdf } from '@/app/contexts/PdfContext'; +import { requestFileAsBuffer } from '@/app/actions/trackingActions'; interface PdfViewerProps { fileId: string; fileName?: string; + showDownload?: boolean; } -export default function PdfViewer({ fileId, fileName = 'document.pdf' }: PdfViewerProps) { +export default function PdfViewer({ fileId, fileName = 'document.pdf', showDownload }: PdfViewerProps) { const canvasRef = useRef(null); const [currentPage, setCurrentPage] = useState(1); const [totalPages, setTotalPages] = useState(0); @@ -26,16 +28,17 @@ export default function PdfViewer({ fileId, fileName = 'document.pdf' }: PdfView const loadAndDisplayPdf = async () => { try { setLoading(true); - - // 1. Получаем данные документа как ArrayBuffer (а не blob URL) - const { requestFileAsBuffer } = await import('@/app/actions/trackingActions'); const pdfData = await requestFileAsBuffer(fileId); if (!pdfData) { throw new Error('Failed to load document'); } - setPdfData(pdfData, fileName); + //это нужно для скачивания так-как иначе pdfData теряется для скачивания + if (showDownload) { + const pdfDataForDownload = pdfData.slice(0); + setPdfData(pdfDataForDownload, fileName); + } if (!isMounted) return;