From 193bbf3ec316ff8d0fba0cc2efca7b3701a9e9b1 Mon Sep 17 00:00:00 2001 From: lauty95 Date: Fri, 14 Nov 2025 16:21:36 +0000 Subject: [PATCH 1/9] feat: camera to scan --- beam/www/beam/components/CameraScanner.vue | 210 +++++++++++++++++++++ beam/www/beam/pages/Move.vue | 12 +- package.json | 1 + yarn.lock | 5 + 4 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 beam/www/beam/components/CameraScanner.vue diff --git a/beam/www/beam/components/CameraScanner.vue b/beam/www/beam/components/CameraScanner.vue new file mode 100644 index 00000000..2febb942 --- /dev/null +++ b/beam/www/beam/components/CameraScanner.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/beam/www/beam/pages/Move.vue b/beam/www/beam/pages/Move.vue index 84115fa8..09b7bac9 100644 --- a/beam/www/beam/pages/Move.vue +++ b/beam/www/beam/pages/Move.vue @@ -8,6 +8,8 @@
+ +
-

{{ errorMessage }}

+

+ {{ errorMessage }} +

You must allow camera access in your browser settings.

On mobile devices, check the permissions in Settings → Apps → Browser

@@ -74,7 +76,7 @@ const startScanning = async () => { try { const stream = await navigator.mediaDevices.getUserMedia({ - video: { facingMode: 'environment' } + video: { facingMode: 'environment' }, }) stream.getTracks().forEach(track => track.stop()) } catch (err: any) { @@ -114,7 +116,7 @@ const startScanning = async () => { await html5QrCode.start( cameraConfig, config, - (decodedText) => { + decodedText => { lastScanned.value = decodedText emit('scan', decodedText, 1) }, @@ -158,7 +160,6 @@ onUnmounted(() => { stopScanning() } }) -