Skip to content

Commit ec87646

Browse files
fix(web): Close button not resolving promise (#116)
Re-ran lint because of changes in linter between main and 2.x
1 parent 578e552 commit ec87646

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

plugin/src/web.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export class CapacitorBarcodeScannerWeb extends WebPlugin implements CapacitorBa
5252
caposbarcodescannercontainerdialoginner.className = 'scanner-dialog-inner';
5353

5454
const caposbarcodescannercontainerdialoginnerclose = document.createElement('span');
55+
caposbarcodescannercontainerdialoginnerclose.id = 'cap-os-barcode-scanner-close-button';
5556
caposbarcodescannercontainerdialoginnerclose.className = 'close-button';
5657
caposbarcodescannercontainerdialoginnerclose.innerHTML = '×';
5758
caposbarcodescannercontainerdialoginner.appendChild(caposbarcodescannercontainerdialoginnerclose);
@@ -67,8 +68,6 @@ export class CapacitorBarcodeScannerWeb extends WebPlugin implements CapacitorBa
6768

6869
caposbarcodescannercontainerdialog.appendChild(caposbarcodescannercontainerdialoginner);
6970
caposbarcodescannercontainer.appendChild(caposbarcodescannercontainerdialog);
70-
71-
caposbarcodescannercontainerdialoginnerclose.onclick = this.stopAndHideScanner;
7271
}
7372

7473
/**
@@ -96,6 +95,17 @@ export class CapacitorBarcodeScannerWeb extends WebPlugin implements CapacitorBa
9695
scannerFPS: options.web?.scannerFPS ? options.web.scannerFPS : 50,
9796
};
9897

98+
let alreadyCancelled = false;
99+
const closeButton = document.getElementById('cap-os-barcode-scanner-close-button');
100+
if (closeButton) {
101+
closeButton.onclick = async () => {
102+
if (alreadyCancelled) return;
103+
alreadyCancelled = true;
104+
await this.stopAndHideScanner();
105+
reject(new Error('Couldn’t scan because the process was cancelled.'));
106+
};
107+
}
108+
99109
// Set up and start the scanner
100110
const scannerElement = document.getElementById('cap-os-barcode-scanner-container-scanner');
101111
if (!scannerElement) {

0 commit comments

Comments
 (0)