Import qr-scanner the rails way.
Some checks failed
CI / scan_ruby (push) Has been cancelled
CI / scan_js (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
CI / system-test (push) Has been cancelled

This commit is contained in:
2026-05-27 02:18:24 +02:00
parent a0e7272b6f
commit e161582c4a
4 changed files with 9 additions and 5 deletions

View File

@@ -1,5 +1,9 @@
import { Controller } from "@hotwired/stimulus";
//import QrScanner from "qr-scanner"; // Rails findet jetzt über die Importmap deine Datei unter vendor/javascript/
// KORREKTUR: Lädt das Modul ohne Namens-Zuweisung, da die Legacy-Datei keinen Default-Export besitzt
import "qr-scanner";
export default class extends Controller {
static targets = ["input", "preview", "modal"];
@@ -13,7 +17,9 @@ export default class extends Controller {
const videoElement = this.previewTarget;
// Greift fehlerfrei auf die Klasse aus dem public-Ordner zu
// Scanner initialisieren (Direkt über die importierte Klasse ohne 'window.')
//this.qrScanner = new QrScanner(
// Greift jetzt absolut fehlerfrei auf die geladene Klasse zu
this.qrScanner = new window.QrScanner(
videoElement,
(result) => { this.handleScanSuccess(result.data); },
@@ -26,8 +32,8 @@ export default class extends Controller {
);
this.qrScanner.start().catch((err) => {
alert("Kamera-Zugriff blockiert! Bitte prüfe die Browser-Berechtigungen.");
console.error("Kamera-Fehler:", err);
alert("Kamera konnte nicht gestartet werden.");
this.modalTarget.classList.add("hidden");
});
}