From 85feeb3747f2215e579fd6476de900655b7515ef Mon Sep 17 00:00:00 2001 From: ngyngcphu Date: Thu, 7 Dec 2023 12:45:19 +0700 Subject: [PATCH] fix(preview): fix revoke url when Preview unmount --- .../order/desktop/OrderListDesktop.tsx | 4 ++++ .../order/desktop/OrderSuccessDesktop.tsx | 8 ++++++- .../order/desktop/UploadAndPreviewDesktop.tsx | 21 ++++++++++--------- src/components/order/mobile/OrderListForm.tsx | 7 +++++++ .../order/mobile/OrderSuccessForm.tsx | 8 ++++++- .../order/mobile/UploadDocumentForm.tsx | 5 ++++- 6 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/components/order/desktop/OrderListDesktop.tsx b/src/components/order/desktop/OrderListDesktop.tsx index 8d4da14..8da8fa4 100644 --- a/src/components/order/desktop/OrderListDesktop.tsx +++ b/src/components/order/desktop/OrderListDesktop.tsx @@ -70,6 +70,10 @@ export const OrderListDesktop: Component<{ initialTotalCost: MutableRefObject(false); const OrderSuccessDesktop: Component<{ initialTotalCost: MutableRefObject; serviceFee?: number; }> = ({ initialTotalCost, serviceFee }) => { + const printingRequestId = queryClient.getQueryData(['printingRequestId']); const { totalCost, setTotalCost, setIsFileUploadSuccess } = useOrderPrintStore(); const { setDesktopOrderStep } = useOrderWorkflowStore(); @@ -51,7 +54,10 @@ export function useOrderSuccessDesktop() {

Order number:

-

{`#1234-5678`}

+

+ {printingRequestId && + `#${printingRequestId.id.slice(0, 4)}-${printingRequestId.id.slice(4, 8)}`} +

Pick-up location:

diff --git a/src/components/order/desktop/UploadAndPreviewDesktop.tsx b/src/components/order/desktop/UploadAndPreviewDesktop.tsx index c314c09..38af83b 100644 --- a/src/components/order/desktop/UploadAndPreviewDesktop.tsx +++ b/src/components/order/desktop/UploadAndPreviewDesktop.tsx @@ -75,11 +75,20 @@ export const UploadAndPreviewDesktop: Component<{ if (coinPerPage !== undefined) { const pdfDoc = await PDFDocument.load(fileEditedBuffer); setFileCoins(pdfDoc.getPageCount() * coinPerPage); - setTotalCost(initialTotalCost.current + pdfDoc.getPageCount() * coinPerPage); + setTotalCost( + initialTotalCost.current + pdfDoc.getPageCount() * coinPerPage * fileConfig.numOfCopies + ); } } }; handleEditPdfPrinting(); + + return () => { + const revokeURL = queryClient.getQueryData(['fileURL']); + if (revokeURL) { + URL.revokeObjectURL(revokeURL); + } + }; }, [ initialTotalCost, coinPerPage, @@ -88,6 +97,7 @@ export const UploadAndPreviewDesktop: Component<{ fileConfig.pageSide, fileConfig.pages, fileConfig.pagesPerSheet, + fileConfig.numOfCopies, queryClient, editPdfPrinting, setFileCoins, @@ -225,15 +235,6 @@ export const UploadAndPreviewDesktop: Component<{ queryFn: () => queryClient.getQueryData(['fileURL']) }); - useEffect(() => { - return () => { - const revokeURL = queryClient.getQueryData(['fileURL']); - if (revokeURL) { - URL.revokeObjectURL(revokeURL); - } - }; - }, []); - const PreviewBody = () => { return ( void; initialTotalCost: MutableRefObject; }> = ({ handleCloseOrderForm, initialTotalCost }) => { + const queryClient = useQueryClient(); + const printingRequestId = queryClient.getQueryData(['printingRequestId']); const { serviceFee: { data: serviceFee } } = usePrintingRequestQuery(); @@ -54,7 +57,10 @@ export const OrderSuccessForm: Component<{

Order number:

-

{`#1234-5678`}

+

+ {printingRequestId && + `#${printingRequestId.id.slice(0, 4)}-${printingRequestId.id.slice(4, 8)}`} +

Pick-up location:

diff --git a/src/components/order/mobile/UploadDocumentForm.tsx b/src/components/order/mobile/UploadDocumentForm.tsx index c69be08..42d8347 100644 --- a/src/components/order/mobile/UploadDocumentForm.tsx +++ b/src/components/order/mobile/UploadDocumentForm.tsx @@ -77,7 +77,9 @@ export const UploadDocumentForm: Component<{ if (coinPerPage !== undefined) { const pdfDoc = await PDFDocument.load(fileEditedBuffer); setFileCoins(pdfDoc.getPageCount() * coinPerPage); - setTotalCost(initialTotalCost.current + pdfDoc.getPageCount() * coinPerPage); + setTotalCost( + initialTotalCost.current + pdfDoc.getPageCount() * coinPerPage * fileConfig.numOfCopies + ); } } }; @@ -90,6 +92,7 @@ export const UploadDocumentForm: Component<{ fileConfig.pageSide, fileConfig.pages, fileConfig.pagesPerSheet, + fileConfig.numOfCopies, queryClient, setFileCoins, setTotalCost,