import { IYesNoDialogFlag } from '@shared/ui-api/interfaces/yes-no-dialog-flag';
import { IYesNoDialogResult } from '@shared/ui-api/interfaces/yes-no-dialog-result';
import { IActionResult } from '@objects-view/interfaces/actions/action-result';
import { Observable } from 'rxjs';

export interface IYesNoDialogData {
  title: string;
  message?: string;
  secondaryMessage?: string;
  importantMessage?: string;
  htmlMessage?: string;
  flags?: IYesNoDialogFlag[];
  radioButtons?: IYesNoDialogFlag[];
  disableConfirmTillFlagsSelected?: Array<string>;
  disableConfirmTillFlagsSelectedAny?: boolean;
  yesButtonName?: string;
  yesButtonDisabled?: boolean;
  secondaryYesButtonName?: string;
  noButtonName?: string;
  hideNoButton?: boolean;

  // action to be executed when dialog yes button was clicked
  yesAction?: (dialogResult: IYesNoDialogResult) => Observable<IActionResult>;
}
