From 788d698f1453e80cfb20ecc50ac29675f175fd1a Mon Sep 17 00:00:00 2001 From: judymoody59 Date: Thu, 12 Jun 2025 17:33:49 +0900 Subject: [PATCH] =?UTF-8?q?KW-669/feat:=20QR=20=EC=8A=A4=EC=BA=94=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=A2=8C=EC=9A=B0=EB=B0=98=EC=A0=84=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/QRCodeScanner.tsx | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/pages/QRCodeScanner.tsx b/src/pages/QRCodeScanner.tsx index 5de6cad..9533c88 100644 --- a/src/pages/QRCodeScanner.tsx +++ b/src/pages/QRCodeScanner.tsx @@ -180,10 +180,28 @@ const QRCodeScanner = () => { }; useEffect(() => { - if (isScanning) { - console.log("QR 코드 쿨타임 중(QR 인식 일시 차단)"); - } -}, [isScanning]); + if (isScanning) { + console.log("QR 코드 쿨타임 중(QR 인식 일시 차단)"); + } + }, [isScanning]); + + useEffect(() => { + const observer = new MutationObserver(() => { + const video = document.querySelector("#qr-reader video") as HTMLVideoElement; + if (video) { + video.style.transform = "scaleX(-1)"; + } + }); + + const qrReader = document.getElementById("qr-reader"); + if (qrReader) { + observer.observe(qrReader, { childList: true, subtree: true }); + } + + return () => { + observer.disconnect(); + }; + }, []); return (