diff --git a/src/components/QRScanner/QRScannerDialog.vue b/src/components/QRScanner/QRScannerDialog.vue
index 981f4ca6..ed9818ab 100644
--- a/src/components/QRScanner/QRScannerDialog.vue
+++ b/src/components/QRScanner/QRScannerDialog.vue
@@ -41,6 +41,8 @@
:camera="options?.camera === 'front' ? 'user' : 'environment'"
@decode="onDecode"
@init="onInit"
+ @detect="onDetect"
+ @error="onError"
/>
): void {
+ logger.log("QR code detected, processing...");
+ promise
+ .then((result) => {
+ logger.log("QR code processed successfully:", result);
+ })
+ .catch((error) => {
+ logger.error("Error processing QR code:", {
+ error: error instanceof Error ? error.message : String(error),
+ stack: error instanceof Error ? error.stack : undefined,
+ });
+ });
+ }
+
onDecode(result: string): void {
+ logger.log("QR code decoded:", result);
try {
this.onScan(result);
this.close();
@@ -153,11 +179,28 @@ export default class QRScannerDialog extends Vue {
if (this.onError) {
this.onError(wrappedError);
}
- logger.error("Error handling QR scan result:", wrappedError);
+ logger.error("Error handling QR scan result:", {
+ error: wrappedError.message,
+ stack: wrappedError.stack,
+ name: wrappedError.name,
+ });
+ }
+ }
+
+ onError(error: Error): void {
+ logger.error("QR scanner error:", {
+ error: error.message,
+ stack: error.stack,
+ name: error.name,
+ });
+ this.error = error.message;
+ if (this.onError) {
+ this.onError(error);
}
}
async close(): Promise {
+ logger.log("Closing QR scanner dialog");
this.visible = false;
await this.$nextTick();
if (this.$el && this.$el.parentNode) {