From b5825b7dd1d3feab6c7edab01e1b2c14698cffc7 Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 26 Jun 2025 21:18:23 -0700 Subject: [PATCH 1/7] remove props --- src/Pages/2DPrinting/2DPrinting.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index 28db6883b..2c97b9585 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -6,13 +6,15 @@ import { getPagesPrinted, } from '../../APIFunctions/2DPrinting'; import { editUser } from '../../APIFunctions/User'; +import { useUser } from '../../Components/context/UserContext'; import { PDFDocument } from 'pdf-lib'; import { healthCheck } from '../../APIFunctions/2DPrinting'; import ConfirmationModal from '../../Components/DecisionModal/ConfirmationModal.js'; -export default function Printing(props) { +export default function Printing() { + const { user, setUser } = useUser(); const [dragActive, setDragActive] = useState(false); const [confirmModal, setConfirmModal] = useState(false); const [numberOfPagesInPdfPreview, setNumberOfPagesInPdfPreview] = useState(0); @@ -40,8 +42,8 @@ export default function Printing(props) { async function getNumberOfPagesPrintedSoFar() { const result = await getPagesPrinted( - props.user.email, - props.user.token, + user.email, + user.token, ); setPrinterHealthy(!result.error); if (!result.error) { @@ -190,13 +192,12 @@ export default function Printing(props) { data.append('file', PdfFile); data.append('sides', sides); data.append('copies', copies); - let status = await printPage(data, props.user.token); + let status = await printPage(data, user.token); if (!status.error) { - editUser( - { ...props.user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }, - props.user.token, - ); + const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; + editUser(updatedUser, user.token); + setUser(updatedUser); // Update the user context setPrintStatus('Printing succeeded!'); setPrintStatusColor('success'); } else { From c6e15c0429e43831f0763995e2856d51a6a520c3 Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 26 Jun 2025 21:48:21 -0700 Subject: [PATCH 2/7] update useEffect and api healthcheck --- src/APIFunctions/2DPrinting.js | 8 +++++++- src/Pages/2DPrinting/2DPrinting.js | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/APIFunctions/2DPrinting.js b/src/APIFunctions/2DPrinting.js index d72f911e1..647f4087f 100644 --- a/src/APIFunctions/2DPrinting.js +++ b/src/APIFunctions/2DPrinting.js @@ -24,7 +24,13 @@ export async function healthCheck() { try { const res = await fetch(url.href); if (res.ok) { - status.responseData = await res.json(); + const contentType = res.headers.get('content-type'); + if (contentType && contentType.includes('application/json')) { + status.responseData = await res.json(); + } else { + const textResponse = await res.text(); + status.responseData = { message: textResponse }; + } } else { status.error = true; } diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index 2c97b9585..92b4ee31e 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -52,9 +52,11 @@ export default function Printing() { } useEffect(() => { - checkPrinterHealth(); - getNumberOfPagesPrintedSoFar(); - }, []); + if (user && user.email && user.token) { + checkPrinterHealth(); + getNumberOfPagesPrintedSoFar(); + } + }, [user]); const INPUT_CLASS_NAME = 'indent-2 block rounded-md border-0 py-1.5 shadow-sm ring-1 ring-inset ring-gray-300 placeholder: focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6'; From 226b34959c48629b3b25d675e0320b3021ddd20b Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 26 Jun 2025 22:21:30 -0700 Subject: [PATCH 3/7] set timeout b4 rerender --- src/Pages/2DPrinting/2DPrinting.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index 92b4ee31e..3bc9772c6 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -195,13 +195,16 @@ export default function Printing() { data.append('sides', sides); data.append('copies', copies); let status = await printPage(data, user.token); + console.log('printPage status:', status, 'status.error:', status.error); if (!status.error) { - const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; - editUser(updatedUser, user.token); - setUser(updatedUser); // Update the user context setPrintStatus('Printing succeeded!'); setPrintStatusColor('success'); + setTimeout(() => { + const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; + editUser(updatedUser, user.token); + setUser(updatedUser); + }, 10000); } else { setPrintStatus('Printing failed. Please try again or reach out to SCE Dev team if the issue persists.'); setPrintStatusColor('error'); From 5a547dbbafbc8f17463e2c4e47cf47b28a619e9c Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 26 Jun 2025 22:33:54 -0700 Subject: [PATCH 4/7] remount timeout --- src/Pages/2DPrinting/2DPrinting.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index 3bc9772c6..ed5b1e415 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -204,7 +204,7 @@ export default function Printing() { const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; editUser(updatedUser, user.token); setUser(updatedUser); - }, 10000); + }, 5000); } else { setPrintStatus('Printing failed. Please try again or reach out to SCE Dev team if the issue persists.'); setPrintStatusColor('error'); From 8eb2aebc6c34a04f2962d6f7ee41700ec947d5d3 Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 26 Jun 2025 22:35:50 -0700 Subject: [PATCH 5/7] syntax --- src/Pages/2DPrinting/2DPrinting.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index ed5b1e415..c1309a117 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -195,7 +195,6 @@ export default function Printing() { data.append('sides', sides); data.append('copies', copies); let status = await printPage(data, user.token); - console.log('printPage status:', status, 'status.error:', status.error); if (!status.error) { setPrintStatus('Printing succeeded!'); From 3d6c4a221c77f2e08950759db72b90900ed5c75d Mon Sep 17 00:00:00 2001 From: alvintran Date: Fri, 27 Jun 2025 12:45:06 -0700 Subject: [PATCH 6/7] remove set user --- src/Pages/2DPrinting/2DPrinting.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index c1309a117..f1d7b1e64 100644 --- a/src/Pages/2DPrinting/2DPrinting.js +++ b/src/Pages/2DPrinting/2DPrinting.js @@ -199,11 +199,8 @@ export default function Printing() { if (!status.error) { setPrintStatus('Printing succeeded!'); setPrintStatusColor('success'); - setTimeout(() => { - const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; - editUser(updatedUser, user.token); - setUser(updatedUser); - }, 5000); + const updatedUser = { ...user, pagesPrinted: pagesPrinted + pagesToBeUsedInPrintRequest }; + editUser(updatedUser, user.token); } else { setPrintStatus('Printing failed. Please try again or reach out to SCE Dev team if the issue persists.'); setPrintStatusColor('error'); From b1e70d50e1ce07a8bfea175a2600799fe19b524d Mon Sep 17 00:00:00 2001 From: alvintran Date: Thu, 3 Jul 2025 20:08:41 -0700 Subject: [PATCH 7/7] overlooked when dealing merge conflicts --- src/APIFunctions/2DPrinting.js | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/APIFunctions/2DPrinting.js b/src/APIFunctions/2DPrinting.js index 4ae7ea2e8..ace81e073 100644 --- a/src/APIFunctions/2DPrinting.js +++ b/src/APIFunctions/2DPrinting.js @@ -23,18 +23,7 @@ export async function healthCheck() { const url = new URL('/api/Printer/healthCheck', BASE_API_URL); try { const res = await fetch(url.href); - if (res.ok) { - const contentType = res.headers.get('content-type'); - if (contentType && contentType.includes('application/json')) { - status.responseData = await res.json(); - } else { - const textResponse = await res.text(); - status.responseData = { message: textResponse }; - } - status.error = false; - } else { - status.error = true; - } + status.error = !res.ok; } catch (err) { status.responseData = err; status.error = true;