@@ -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