import { Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { ShareByEMail } from '../../../../../bizmatch-server/src/models/db.model'; @Injectable({ providedIn: 'root', }) export class EMailService { private modalVisibleSubject = new Subject(); private shareByEMailSubject = new Subject(); private resolvePromise!: (value: boolean | ShareByEMail) => void; modalVisible$: Observable = this.modalVisibleSubject.asObservable(); shareByEMail$: Observable = this.shareByEMailSubject.asObservable(); showShareByEMail(shareByEMail: ShareByEMail): Promise { this.shareByEMailSubject.next(shareByEMail); this.modalVisibleSubject.next(true); return new Promise(resolve => { this.resolvePromise = resolve; }); } accept(value: ShareByEMail): void { this.modalVisibleSubject.next(false); this.resolvePromise(value); } reject(): void { this.modalVisibleSubject.next(false); this.resolvePromise(false); } }