import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class ModalService { private modals: Map> = new Map(); private imageFilesSubject = new BehaviorSubject(null); private formDataSubject = new BehaviorSubject(null); getModalState(id: string): BehaviorSubject { if (!this.modals.has(id)) { this.modals.set(id, new BehaviorSubject(false)); } return this.modals.get(id)!; } openModal(id: string, images?: File[], formData?: any) { if (images) { this.imageFilesSubject.next(images); } if (formData) { this.formDataSubject.next(formData); } this.getModalState(id).next(true); } closeModal(id: string) { this.getModalState(id).next(false); this.imageFilesSubject.next(null); this.formDataSubject.next(null); } getImageFiles(): BehaviorSubject { return this.imageFilesSubject; } getFormData(): BehaviorSubject { return this.formDataSubject; } }