From b66f59eedcfde26c0c77842fb1dddcce0d7e687b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=B6hm?= Date: Wed, 27 May 2026 00:46:52 +0200 Subject: [PATCH] Added qr scanner --- .../controllers/scanner_controller.js | 92 +++++++++++-------- app/views/items/_search_bar.html.erb | 5 +- app/views/layouts/application.html.erb | 29 +++--- config/importmap.rb | 1 + vendor/javascript/qr-scanner.js | 4 + 5 files changed, 76 insertions(+), 55 deletions(-) create mode 100644 vendor/javascript/qr-scanner.js diff --git a/app/javascript/controllers/scanner_controller.js b/app/javascript/controllers/scanner_controller.js index 69102ae..a5f35c7 100644 --- a/app/javascript/controllers/scanner_controller.js +++ b/app/javascript/controllers/scanner_controller.js @@ -1,58 +1,78 @@ import { Controller } from "@hotwired/stimulus"; +import QrScanner from "qr-scanner"; // Importiert das saubere, einzelne Modul export default class extends Controller { static targets = ["input", "preview", "modal"]; connect() { - this.html5QrCode = null; + this.qrScanner = null; } // Öffnet das Modal und startet den Kamera-Stream startCamera(event) { event.preventDefault(); - // Modal anzeigen + // 1. Modal anzeigen this.modalTarget.classList.remove("hidden"); - // Neue Instanz auf dem Preview-Div mit der ID des Elements erzeugen - this.html5QrCode = new Html5Qrcode(this.previewTarget.id); + // 2. Ein HTML5