X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fcore%2Fconfirm%2Fconfirm.service.ts;h=6e042c16bf5f99485b0b58efdcc749e65a52b5f9;hb=60c2bc80b82c71bd63bdb1fcf64d4d49491ce5c8;hp=b9796979591754d23999796d76748ed7084f7fc8;hpb=5769e1db8d3d5a1e3baa8dff23090cfe93d48a50;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/confirm/confirm.service.ts b/client/src/app/core/confirm/confirm.service.ts index b97969795..6e042c16b 100644 --- a/client/src/app/core/confirm/confirm.service.ts +++ b/client/src/app/core/confirm/confirm.service.ts @@ -1,15 +1,33 @@ -import { Injectable } from '@angular/core'; -import { Subject } from 'rxjs/Subject'; -import 'rxjs/add/operator/first'; +import { first } from 'rxjs/operators' +import { Injectable } from '@angular/core' +import { Subject } from 'rxjs' + +type ConfirmOptions = { + title: string + message: string + inputLabel?: string + expectedInputValue?: string + confirmButtonText?: string +} @Injectable() export class ConfirmService { - showConfirm = new Subject<{ title, message }>(); - confirmResponse = new Subject(); + showConfirm = new Subject() + confirmResponse = new Subject() + + confirm (message: string, title = '', confirmButtonText?: string) { + this.showConfirm.next({ title, message, confirmButtonText }) + + return this.confirmResponse.asObservable() + .pipe(first()) + .toPromise() + } - confirm(message: string = '', title: string = '') { - this.showConfirm.next({ title, message }); + confirmWithInput (message: string, inputLabel: string, expectedInputValue: string, title = '', confirmButtonText?: string) { + this.showConfirm.next({ title, message, inputLabel, expectedInputValue, confirmButtonText }) - return this.confirmResponse.asObservable().first(); + return this.confirmResponse.asObservable() + .pipe(first()) + .toPromise() } }