import React, { useState, useEffect } from "react"; import { Html5QrcodeScanner } from "html5-qrcode"; import { Box } from "@mui/material"; import LoadingContainer from "./LoadingContainer"; const BarcodeScanner = () => { const [scanResult, setScanResult] = useState(null); const [isLoading, setIsLoading] = useState(false); const [barcodeInfo, setBarcodeInfo] = useState([]); const [marksData, setMarksData] = useState([]); useEffect(() => { const scanner = new Html5QrcodeScanner("reader", { qrbox: { width: 250, height: 250, }, fps: 5, }); const fetchBarcodeData = (result) => { setIsLoading(true); try { const payload = { qrcodeValue: result, }; fetch( `${ import.meta.env.VITE_REACT_APP_BACKEND_URL }/fetchQrcodeScannedInfo`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(payload), } ) .then((response) => response.json()) .then((responseData) => { setIsLoading(false); if (responseData.status === "success") { setBarcodeInfo(responseData.results); setMarksData(responseData?.marks); } }); } catch (error) { setIsLoading(false); throw new Error(error); } }; const success = (result) => { scanner.clear(); setScanResult(result); fetchBarcodeData(result); }; const error = (err) => { console.log("Error: ", err); }; // Ensure the element is in the DOM before initializing the scanner if (document.getElementById("reader")) { scanner.render(success, error); } // Cleanup the scanner on component unmount return () => { scanner.clear(); }; }, []); return (

Welcome to exampaper.vidh.ai

{scanResult ? (
QR : {scanResult}
) : (
)}
{scanResult ? (
QR : {scanResult}
) : (
)}
{barcodeInfo.length > 0 && (
Candidate Name: {barcodeInfo[0]?.candidate_name}
Register Name : {barcodeInfo[0]?.register_number}
Subject Code : {barcodeInfo[0]?.subject_code}
Exam center code : {barcodeInfo[0]?.exam_centre_code}
Exam center : {barcodeInfo[0]?.exam_center}
)}
{scanResult ? (marksData.length > 0 && barcodeInfo.length > 0 ? (
Marks : {marksData[0]?.marks}
File Scanned Date : {marksData[0]?.file_scanned_date}
Cover QR code : {marksData[0]?.cover_barcode}
) : (
Marks Data Not Found ..
)):null}
{isLoading && }
); }; export default BarcodeScanner;