diff --git a/src/Pages/2DPrinting/2DPrinting.js b/src/Pages/2DPrinting/2DPrinting.js index 28db6883b..f1d7b1e64 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) { @@ -50,9 +52,11 @@ export default function Printing(props) { } 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'; @@ -190,15 +194,13 @@ 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, - ); setPrintStatus('Printing succeeded!'); setPrintStatusColor('success'); + 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');