diff --git a/backend/package.json b/backend/package.json index 3b3e1b0..3dd18f8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -21,11 +21,7 @@ "express": "^4.19.2", "jsonwebtoken": "^9.0.2", "mongoose": "^8.4.0", -<<<<<<< HEAD - "nodemailer": "^6.9.13", -======= "nodemailer": "^6.9.14", ->>>>>>> 53b4556520ccfc77bbb053ad39f15f4f69ced03a "nodemon": "^3.1.1", "twilio": "^5.1.1" }, diff --git a/src/pages/QR.js b/src/pages/QR.js index 48b835c..5d67045 100644 --- a/src/pages/QR.js +++ b/src/pages/QR.js @@ -12,6 +12,7 @@ const QRCodeVerification = () => { const [productInfo, setProductInfo] = useState(null); const [error, setError] = useState(null); const [isScannerOpen, setIsScannerOpen] = useState(false); + const [selectedImage, setSelectedImage] = useState(null); const videoRef = useRef(null); const canvasRef = useRef(null); const requestRef = useRef(null); @@ -100,6 +101,35 @@ const QRCodeVerification = () => { setError("Error scanning code: " + err.message); }; + const handleFileChange = (event) => { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = () => { + const image = new Image(); + image.onload = () => { + const canvas = canvasRef.current; + if (canvas) { // Ensure canvas is not null + const context = canvas.getContext("2d"); + canvas.width = image.width; + canvas.height = image.height; + context.drawImage(image, 0, 0, canvas.width, canvas.height); + const imageData = context.getImageData(0, 0, canvas.width, canvas.height); + const code = jsQR(imageData.data, imageData.width, imageData.height); + if (code) { + handleScan(code.data); + } else { + setError("No QR code found in the selected image."); + } + } + }; + image.src = reader.result; + setSelectedImage(reader.result); + }; + reader.readAsDataURL(file); + } + }; + return ( <>