import {
  Component,
  OnInit,
  Inject,
  ViewChild,
  ElementRef
} from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';

export interface ConfirmDialogData {
  title: string;
  message?: string;
  html?: string;
  hideAction?: boolean;
}

export interface ConfirmDialogResult {
  choice: boolean;
}

@Component({
  selector: 'ucap-ui-confirm-dialog',
  templateUrl: './confirm.dialog.component.html',
  styleUrls: ['./confirm.dialog.component.scss']
})
export class ConfirmDialogComponent implements OnInit {
  @ViewChild('messageContainer', { static: true })
  messageContainer: ElementRef;

  hideAction = false;

  constructor(
    public dialogRef: MatDialogRef<ConfirmDialogComponent, ConfirmDialogResult>,
    @Inject(MAT_DIALOG_DATA) public data: ConfirmDialogData
  ) {}

  ngOnInit(): void {
    if (!!this.data.html) {
      this.messageContainer.nativeElement.innerHTML = this.data.html;
    }
    if (!!this.data.hideAction) {
      this.hideAction = this.data.hideAction;
    }
  }

  onClickChoice(choice: boolean): void {
    this.dialogRef.close({
      choice
    });
  }
}
