@@ -178,6 +178,7 @@ export class Html5QrcodeScanner {
178
178
private persistedDataManager : PersistedDataManager ;
179
179
private scanTypeSelector : ScanTypeSelector ;
180
180
private logger : Logger ;
181
+ private isCleared = false ;
181
182
182
183
// Initally null fields.
183
184
private html5Qrcode : Html5Qrcode | undefined ;
@@ -232,6 +233,7 @@ export class Html5QrcodeScanner {
232
233
public render (
233
234
qrCodeSuccessCallback : QrcodeSuccessCallback ,
234
235
qrCodeErrorCallback : QrcodeErrorCallback | undefined ) {
236
+ this . isCleared = false ;
235
237
this . lastMatchFound = null ;
236
238
237
239
// Add wrapper to success callback.
@@ -324,6 +326,8 @@ export class Html5QrcodeScanner {
324
326
* fails otherwise.
325
327
*/
326
328
public clear ( ) : Promise < void > {
329
+ this . isCleared = true ;
330
+
327
331
const emptyHtmlContainer = ( ) => {
328
332
const mainContainer = document . getElementById ( this . elementId ) ;
329
333
if ( mainContainer ) {
@@ -546,6 +550,9 @@ export class Html5QrcodeScanner {
546
550
}
547
551
548
552
Html5Qrcode . getCameras ( ) . then ( ( cameras ) => {
553
+ if ( $this . isCleared ) {
554
+ return ;
555
+ }
549
556
// By this point the user has granted camera permissions.
550
557
$this . persistedDataManager . setHasPermission (
551
558
/* hasPermission */ true ) ;
@@ -612,6 +619,9 @@ export class Html5QrcodeScanner {
612
619
&& this . persistedDataManager . hasCameraPermissions ( ) ) {
613
620
CameraPermissions . hasPermissions ( ) . then (
614
621
( hasPermissions : boolean ) => {
622
+ if ( $this . isCleared ) {
623
+ return ;
624
+ }
615
625
if ( hasPermissions ) {
616
626
$this . createCameraListUi (
617
627
scpCameraScanRegion , requestPermissionContainer ) ;
@@ -964,6 +974,9 @@ export class Html5QrcodeScanner {
964
974
CameraPermissions . hasPermissions ( ) . then (
965
975
( hasPermissions : boolean ) => {
966
976
if ( hasPermissions ) {
977
+ if ( $this . isCleared ) {
978
+ return ;
979
+ }
967
980
// Start feed.
968
981
// Assuming at this point the permission button exists.
969
982
let permissionButton = document . getElementById (
0 commit comments