All files / app/services confirm-modal.service.ts

71.42% Statements 5/7
83.33% Branches 5/6
0% Functions 0/1
50% Lines 2/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29                        25x 1x                              
import { Injectable, inject } from '@angular/core';
import { ModalService } from './modal.service';
import { WarningModal, WarningModalData } from '../components/warning-modal/warning-modal';
 
export interface ConfirmModalOptions {
  closeOnBackdropClick?: boolean;
  closeOnEscape?: boolean;
}
 
@Injectable({
  providedIn: 'root',
})
export class ConfirmModalService {
  private readonly modalService = inject(ModalService);
 
  /**
   * Opens a standard warning/confirm modal and resolves to `true` only when confirmed.
   */
  async confirm(data: WarningModalData, options: ConfirmModalOptions = {}): Promise<boolean> {
    const result = await this.modalService.open<WarningModalData, boolean>({
      component: WarningModal,
      data,
      ...options,
    });
 
    return result === true;
  }
}