in client/src/pages/capture/capture.ts [136:165]
onCaptureClick() {
if (!this.cameraPreview) {
return;
} else if (this.cameraPreview.status !== CameraPreviewStatus.Started) {
return;
}
const preview = this.cameraPreview;
this.captureInProgress = true;
const loadingPopUp = this.dialog.open(CapturePopUpComponent,
{ closeOnNavigation: false, disableClose: true, panelClass: 'loading-popup' });
this.sessionService.currentSession.currentModal = loadingPopUp;
loadingPopUp.beforeClosed().subscribe({
complete: () => this.sessionService.currentSession.currentModal = null
});
addOpenedListener(loadingPopUp, () => {
preview.capture().then(
image => {
logger.log('Image captured');
this.loadImageDescriptions(image, loadingPopUp);
},
err => {
logger.warn('Failed to capture image', err);
this.captureInProgress = false;
loadingPopUp.close();
const errorMessage = this.i18n.getTranslation('captureImageError') || 'Unable to capture image';
this.dialog.open(ErrorPopUpComponent, { data: { message: errorMessage } });
}
);
});
}