onCaptureClick()

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 } });
        }
      );
    });
  }