|
|
@@ -2,7 +2,7 @@ import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
|
|
|
import { CommonModule } from '@angular/common';
|
|
|
import { LoginModalComponent } from './login-modal.component';
|
|
|
|
|
|
-declare var QRCode: any;
|
|
|
+import QRCode from 'qrcode';
|
|
|
|
|
|
// ═══════════════════════════════════════════════════
|
|
|
// APIG Payment Page — Angular Component
|
|
|
@@ -473,33 +473,27 @@ export class App implements OnInit {
|
|
|
canvas.width = 200;
|
|
|
canvas.height = 200;
|
|
|
|
|
|
- if (typeof QRCode !== 'undefined' && QRCode?.toCanvas) {
|
|
|
- try {
|
|
|
- await QRCode.toCanvas(canvas, url, {
|
|
|
- width: 200,
|
|
|
- margin: 0,
|
|
|
- color: { dark: '#000000', light: '#ffffff' }
|
|
|
- });
|
|
|
- console.log('QR rendered via canvas');
|
|
|
- return;
|
|
|
- } catch (e) {
|
|
|
- console.warn('QRCode.toCanvas failed:', e);
|
|
|
+ try {
|
|
|
+ await QRCode.toCanvas(canvas, url, {
|
|
|
+ width: 200,
|
|
|
+ margin: 0,
|
|
|
+ color: { dark: '#000000', light: '#ffffff' }
|
|
|
+ });
|
|
|
+ console.log('QR rendered via canvas');
|
|
|
+ } catch (e) {
|
|
|
+ console.warn('QRCode.toCanvas failed, using img fallback:', e);
|
|
|
+ canvas.style.display = 'none';
|
|
|
+ const wrapper = canvas.parentElement;
|
|
|
+ if (wrapper) {
|
|
|
+ const img = document.createElement('img');
|
|
|
+ img.src = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=' + encodeURIComponent(url);
|
|
|
+ img.width = 200;
|
|
|
+ img.height = 200;
|
|
|
+ img.alt = 'Payment QR Code';
|
|
|
+ img.style.display = 'block';
|
|
|
+ wrapper.appendChild(img);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // Fallback: img
|
|
|
- console.log('Using img fallback for QR');
|
|
|
- canvas.style.display = 'none';
|
|
|
- const wrapper = canvas.parentElement;
|
|
|
- if (wrapper) {
|
|
|
- const img = document.createElement('img');
|
|
|
- img.src = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=' + encodeURIComponent(url);
|
|
|
- img.width = 200;
|
|
|
- img.height = 200;
|
|
|
- img.alt = 'Payment QR Code';
|
|
|
- img.style.display = 'block';
|
|
|
- wrapper.appendChild(img);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
cancelPayment(): void {
|